Messages in this thread | | | Subject | Re: [RFC PATCH] poll(): add poll_wait_set_exclusive() | From | Steven Rostedt <> | Date | Wed, 06 Oct 2010 16:31:36 -0400 |
| |
On Wed, 2010-10-06 at 15:04 -0400, Mathieu Desnoyers wrote:
> For reference, here is the use-case: The user-space daemon runs typically one > thread per cpu, each with a handle on many file descriptors. Each thread waits > for data to be available using poll(). In order to follow the poll semantic, > when data becomes available on a file descriptor, the kernel wakes up all > threads at once, but in my case only one of them will successfully consume the > data (all other thread's splice or read will fail with -ENODATA). With many > threads, these useless wakeups add an unwanted overhead and scalability > limitation.
Mathieu, I'm curious to why you have multiple threads reading the same fd. Since the threads are per cpu, does the fd handle all CPUs? Or do you have an fd per event per CPU, in which case the threads should just poll off of their own fds.
-- Steve
| |