Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1605196

Re: [PATCH] sched: Wake up all non-exclusive waiters in __wake_up_common()

From Byungchul Park <byungchul.park@lge.com>
Newsgroups linux.kernel
Subject Re: [PATCH] sched: Wake up all non-exclusive waiters in __wake_up_common()
Date 2017-03-21 00:20 +0100
Message-ID <tneKJ-3jB-1@gated-at.bofh.it> (permalink)
References <tixO1-76a-13@gated-at.bofh.it> <tn32W-3u2-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, Mar 20, 2017 at 11:41:47AM +0100, Peter Zijlstra wrote:
> On Wed, Mar 08, 2017 at 09:21:52AM +0900, Byungchul Park wrote:
> > __wake_up_common() should wake up all non-exclusive waiters and
> > exclusive waiters as many as nr_exclusive, but currently it does not.
> > 
> > Consider a wait queue like the following for example:
> > 
> >    A(exclusive) -> B(non-exclusive) -> C(non-exclusive)
> > 
> > Current code will wake up only A when nr_exclusive = 1, but has to wake
> > up A, B and C. Make it do as we expect.
> 
> You have the list oredered the wrong way around. We add exclusive
> waiters to the tail, therefore we'll have woken up all the !exclusive
> waiters before we start decrementing nr_exclusive.

You're right. I proposed the patch because of __add_wait_queue_exclusive(),
which queues an item at the head. But it was my mistake. Sorry.

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH] sched: Wake up all non-exclusive waiters in  __wake_up_common() Peter Zijlstra <peterz@infradead.org> - 2017-03-20 11:50 +0100
  Re: [PATCH] sched: Wake up all non-exclusive waiters in  __wake_up_common() Byungchul Park <byungchul.park@lge.com> - 2017-03-21 00:20 +0100

csiph-web