Messages in this thread | | | Date | Tue, 18 Jun 2002 17:12:00 -0400 | From | Benjamin LaHaise <> | Subject | Re: latest linus-2.5 BK broken |
| |
On Tue, Jun 18, 2002 at 01:41:12PM -0700, Linus Torvalds wrote: > That wasn't so hard, was it? > > Besides, we've had this interface for about 15 years, and it's called > "select()". It scales fine to thousands of descriptors, and we're talking > about something that is a hell of a lot less timing-critical than select > ever was.
I take issue with the statement that select scales fine to thousands of file descriptors. It doesn't. For fairly trivial workloads it degrades to 0 operations per second with more than a few dozen filedescriptors in the array, but only one descriptor being active. To sustain decent throughput, select needs something like 50% of the filedescriptors in an array to be active at every select() call, which makes in unsuitable for things like LDAP servers, or HTTP/FTP where the clients are behind slow connections or interactive (like in the real world). I've benchmarked it -- we should really include something like /dev/epoll in the kernel to improve this case.
Still, I think the bitmap approach in this case is useful, as having affinity to multiple CPUs can be needed, and it is not a frequently occuring operation (unlike select()).
-ben -- "You will be reincarnated as a toad; and you will be much happier." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |