Re: Linux's implementation of poll() not scalable?

From: Linus Torvalds (torvalds@transmeta.com)
Date: Mon Oct 23 2000 - 20:16:24 EST


On Tue, 24 Oct 2000, Andi Kleen wrote:
>
> It would be possible to setup a file -> fdnum reverse table (possibly cached
> over poll calls, I think Solaris does that) and let the async events directly
> change the bits in the output buffer in O(1).

I disagree.

Let's just face it, poll() is a bad interface scalability-wise.

If you want to do efficient events, you should have some other approach,
like an event queue. Yes, I know it's a dirty word because NT uses it, but
let's face it, poll() was a hack to make it easier to do something
select()-like but with the same machinery as select.

> Also the current 2.4 poll is very wasteful both in memory and cycles
> for small numbers of fd.

Yes, we could go back to the "optimize the case of n < 8" thing. Which
should be particularly easy with the new "poll_table_page" setup: the
thing is more abstracted than it used to be in 2.2.

                Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 23 2000 - 21:00:22 EST