Re: latest linus-2.5 BK broken

Benjamin LaHaise
2002-06-18T21:12:01Z

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."