Messages in this thread | | | Date | Wed, 15 Sep 1999 17:23:45 +0100 (GMT/BST) | From | Mike Jagdis <> | Subject | Re: > 15,000 Simultaneous Connections |
| |
On Wed, 15 Sep 1999, Stephen C. Tweedie wrote:
> The cost per fd is miniscule.
Taking the 15000 fds in the subject select would need to do a 4 page kmalloc and the current poll would do a 32 page kmalloc. Then you have to loop over all the descriptors calling their poll handlers.
Incidentally, it looks like there is a possible DoS with queued signals. If you flood the queue with signals but keep them blocked no one else will get a look in.
Then again, I'm not convinced that the sigio approach is what we really want anyway. Looking at, for instance, drivers/char/n_tty.c we seem to queue a signal on every new line if ICANON is set and for every character (after VMIN) if it isn't. All we really want to know is that something happened since we last paid attention to the fd, preferably with a quick way of getting the current state (POLL_* flags).
Oh, and the pipe code doesn't seem to call kill_fasync (which is what does sigio). Anyone want to look in to that?
Mike
-- Failure isn't an option - it's built in to Windows .----------------------------------------------------------------------. | Mike Jagdis | Internet: mailto:mike@roan.co.uk | | Roan Technology Ltd. | | | 2 Markham Mews, Broad Street | Telephone: +44 118 989 0403 | | Wokingham ENGLAND | Fax: +44 118 989 1195 | `----------------------------------------------------------------------'
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |