lkml.org 
[lkml]   [2012]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    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 <hagen@jauu.net> 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 <hagen@jauu.net>
    > > ---
    > > 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/get_maintainer.pl.
    >

    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
    create?

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

    Thanks,

    -Jason


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