[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1004281155070.21219@makko.or.mcafeemobile.com>
Date: Wed, 28 Apr 2010 11:57:01 -0700 (PDT)
From: Davide Libenzi <davidel@...ilserver.org>
To: Changli Gao <xiaosuo@...il.com>
cc: David Howells <dhowells@...hat.com>,
Yong Zhang <yong.zhang@...driver.com>,
Xiaotian Feng <xtfeng@...il.com>, Ingo Molnar <mingo@...e.hu>,
Alexander Viro <viro@...iv.linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
Roland Dreier <rolandd@...co.com>,
Stefan Richter <stefanr@...6.in-berlin.de>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <dada1@...mosbay.com>,
Christoph Lameter <cl@...ux.com>,
Andreas Herrmann <andreas.herrmann3@....com>,
Thomas Gleixner <tglx@...utronix.de>,
Takashi Iwai <tiwai@...e.de>, linux-fsdevel@...r.kernel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [RFC] sched: implement the exclusive wait queue as a LIFO
queue
On Wed, 28 Apr 2010, Changli Gao wrote:
> On Wed, Apr 28, 2010 at 5:29 PM, David Howells <dhowells@...hat.com> wrote:
> > Changli Gao <xiaosuo@...il.com> wrote:
> >
> >> If there isn't enough work to be done, we'd better not disrupt them
> >> and leave them sleeping forever to keep the scheduler happier. Do we
> >> have reason to keep fair to all the workers? Does it have benefit?
> >
> > You've made one important assumption: the processes on the wait queue are
> > sleeping waiting to service things... but what if the wait queue governs
> > access to a resource, and all the processes on that wait queue need access to
> > that resource to do things? Some of the processes waiting for it may never
> > get a go, and so necessary work may be left undone.
> >
>
> You are right. I made the wrong assumption. But we indeed need some
> primitive to add wait_queue at the head of the wait_queue_head, and I
> know epoll needs it, at least.
>
> fs/eventpoll.c: 1443.
> wait.flags |= WQ_FLAG_EXCLUSIVE;
> __add_wait_queue(&ep->wq, &wait);
I'm not sure one user deserves a new function, but like it has been
noticed, the patch for that should eventually be totally isolated from
other bits.
- Davide
Powered by blists - more mailing lists