Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1604359
| 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 |
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 | Next — Next in thread | Find similar | Unroll 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