[lkml]   [2012]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH Resend] epoll: add EPOLLEXCLUSIVE support
    On Wed, Mar 28, 2012 at 04:09:24PM +0200, richard -rw- weinberger wrote:
    > On Wed, Mar 28, 2012 at 3:57 PM, Hagen Paul Pfeifer <> wrote:
    > > High performance server sometimes create one listening socket (e.g. port
    > > 80), create a epoll file descriptor and add the socket. Afterwards
    > > create SC_NPROCESSORS_ONLN threads and wait for events. This often
    > > result in a thundering herd problem because all CPUs are scheduled.
    > >
    > > This patch add an additional flag to epoll_ctl(2) called EPOLLEXCLUSIVE.
    > > If a descriptor is added with this flag only one CPU is scheduled in.
    > >
    > > Signed-off-by: Hagen Paul Pfeifer <>
    > > ---
    > > Dave rejected the patch and said not network specific. Because there
    > > is no epoll maintainer this time directly.
    > CC'ing maintainers for you...
    > Please use scripts/

    Hmmm...Looking at ep_poll() it does an '__add_wait_queue_exclusive()'.
    So, I *think* epoll_wait() should do what you want, if you are waiting
    on the same epfd in all the threads.

    I think the case you are describing is where each thread does its own
    ep_create(), and then a subsequent epoll_wait() on the fd from the

    So, I *think* you can get what you want without adding this flag.



     \ /
      Last update: 2012-03-28 18:23    [W:0.019 / U:6.928 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site