From: Changli Gao on 28 Apr 2010 04:30 On Wed, Apr 28, 2010 at 4:15 PM, Yong Zhang <yong.zhang(a)windriver.com> wrote: > > What do you mean "we don't need these processes"? If the work is less than the workers, we don't need the workers at the tail of the exculsive list. > >> without them, why we wake them up? > > So some processs(at the tail of exclusive list)will be treated abnormally > and it will sleep for a long time, is this reasonable? > 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? -- Regards, Changli Gao(xiaosuo(a)gmail.com) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Johannes Weiner on 28 Apr 2010 05:30 On Wed, Apr 28, 2010 at 04:23:52PM +0800, Changli Gao wrote: > On Wed, Apr 28, 2010 at 4:15 PM, Yong Zhang <yong.zhang(a)windriver.com> wrote: > > > > What do you mean "we don't need these processes"? > > If the work is less than the workers, we don't need the workers at the > tail of the exculsive list. Have you checked how exclusive waitqueues are even used? > > So some processs(at the tail of exclusive list)will be treated abnormally > > and it will sleep for a long time, is this reasonable? > > > > 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? How about starving lock contenders? See wait_on_bit_lock() and grep for the users e.g. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: David Howells on 28 Apr 2010 05:40 Changli Gao <xiaosuo(a)gmail.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. So NACK. David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Changli Gao on 28 Apr 2010 07:20 On Wed, Apr 28, 2010 at 5:29 PM, David Howells <dhowells(a)redhat.com> wrote: > Changli Gao <xiaosuo(a)gmail.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); -- Regards, Changli Gao(xiaosuo(a)gmail.com) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: David Howells on 28 Apr 2010 09:30 Changli Gao <xiaosuo(a)gmail.com> wrote: > 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); You can add at either end of the wait queue with __add_wait_queue() and __add_wait_queue_tail(). David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 4 5 Prev: [git pull] PCMCIA bugfixes for 2.6.34-rc6 Next: linux-next: Apr 27 - S390 boot failure. |