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


Groups > linux.kernel > #1604359

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

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: [PATCH] sched: Wake up all non-exclusive waiters in __wake_up_common()
Date 2017-03-20 11:50 +0100
Message-ID <tn32W-3u2-15@gated-at.bofh.it> (permalink)
References <tixO1-76a-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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.

Back to linux.kernel | Previous | NextNext 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