[lkml]   [2010]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC] sched: implement the exclusive wait queue as a LIFO queue
    On Wed, Apr 28, 2010 at 9:21 PM, Jamie Lokier <> wrote:
    > Changli Gao wrote:
    >> fs/eventpoll.c: 1443.
    >>                 wait.flags |= WQ_FLAG_EXCLUSIVE;
    >>                 __add_wait_queue(&ep->wq, &wait);
    > The same thing about assumptions applies here.  The userspace process
    > may be waiting for an epoll condition to get access to a resource,
    > rather than being a worker thread interchangeable with others.

    Oh, the lines above are the current ones. So the assumptions applies
    and works here.

    > For example, userspace might be using a pipe as a signal-safe lock, or
    > signal-safe multi-token semaphore, and epoll to wait for that pipe.
    > WQ_FLAG_EXCLUSIVE means there is no point waking all tasks, to avoid a
    > pointless thundering herd.  It doesn't mean unfairness is ok.

    The users should not make any assumption about the waking up sequence,
    neither LIFO nor FIFO.

    > The LIFO idea _might_ make sense for interchangeable worker-thread
    > situations - including userspace.  It would make sense for pipe
    > waiters, socket waiters (especially accept), etc.

    Yea, and my following patches are for socket waiters.

    > Do you have any measurements which showing the LIFO mode performing
    > better than FIFO, and by how much?

    I didn't do any test yet. But some work done by LSE project years ago
    showed that it is better.

    " Also in view of
    better cache utilization the wake queue mechanism is LIFO by default.
    (A new exclusive LIFO wakeup option has been introduced for this purpose)"

    Changli Gao(
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2010-04-28 15:45    [W:0.022 / U:21.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site