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

From: Alexander Viro (viro@math.psu.edu)
Date: Tue Oct 24 2000 - 00:43:20 EST


On Mon, 23 Oct 2000, Jordan Mendelson wrote:

> What you describe is exactly what the /dev/poll interface patch from the
> Linux scalability project does.
>
> It creates a special device which you can open up and write
> add/remove/modify entries you wish to be notified of using the standard
> struct pollfd. Removing entries is done by setting the events in a
> struct written to the device to POLLREMOVE.

And that's an ugly crap.

        * you add struct {<whatever>} into the kernel API. _Always_ a bad
idea.
        * you either create yet another example of "every open() gives a
new instance" kind of device or you got to introduce a broker process.
        * no easy way to check the current set.
        * no fscking way to use that from scripts/etc.

> You can optionally mmap() memory which the notifications are written to.
> Two ioctl() calls are provide for the initial allocation and also to
> force it to check all items in your poll() list.

        * useless use of ioctl() award

> Solaris has this same interface minus the mmap()'ed memory.

        Oh, yes. Solaris. Great example of good taste...

-
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 : Tue Oct 31 2000 - 21:00:13 EST