[lkml]   [2000]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread

    On Tue, 24 Oct 2000, Andi Kleen wrote:
    > I don't see the problem. You have the poll table allocated in the kernel,
    > the drivers directly change it and the user mmaps it (I was not proposing
    > to let poll make a kiobuf out of the passed array)

    That's _not_ how poll() works at all.

    We don't _have_ a poll table in the kernel, and no way to mmap it. The
    poll() tables gets created dynamically based on the stuff that the user
    has set up in the table. And the user can obviously change the fd's etc in
    the table directly, so in order for the caching to work you need to do
    various games with page table dirty or writable bits, or at least test
    dynamically whether the poll table is the same as it was before.

    Sure, it's doable, and apparently Solaris does something like this. But
    what _is_ the overhead of the Solaris code for small number of fd's? I bet
    it really is quite noticeable. I also suspect it is very optimized toward
    an unchangning poll-table.

    > What is your favourite interface then ?

    I suspect a good interface that can easily be done efficiently would
    basically be something where the user _does_ do the equivalent of a
    read-only mmap() of poll entries - and explicit and controlled
    "add_entry()" and "remove_entry()" controls, so that the kernel can
    maintain the cache without playing tricks.

    Basically, something like a user interface to something that looks like
    the linux poll_table_page structures, with the difference being that it
    doesn't have to be created and torn down all the time because the user
    would explicitly ask for "add this fd" and "remove this fd" from the

    Th eproblem with poll() as-is is that the user doesn't really tell the
    kernel explictly when it is changing the table..


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:41    [W:0.021 / U:8.840 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site