Messages in this thread | | | Date | Tue, 1 Sep 2015 11:41:27 +0200 | From | Oleg Nesterov <> | Subject | Re: wake_up_process implied memory barrier clarification |
| |
On 08/31, Paul E. McKenney wrote: > > On Mon, Aug 31, 2015 at 08:33:35PM +0200, Oleg Nesterov wrote: > > On 08/31, Boqun Feng wrote: > > > > > > Fair enough, I went too far. How about just a single paragraph saying > > > that: > > > > > > The wake_up(), wait_event() and their friends have proper barriers in > > > them, but these implicity barriers are only for the correctness for > > > sleep and wakeup. So don't rely on these barriers for things that are > > > neither wait-conditons nor task states. > > > > > > Is that OK to you? > > > > Ask Paul ;) but personally I agree. > > > > To me, the only thing a user should know about wake_up/try_to_wake_up > > and barriers is that you do not need another barrier between setting > > condition and waking up. > > Sounds like an excellent idea in general. But could you please show me > a short code snippet illustrating where you don't need the additional > barrier, even if the fastpaths are taken so that there is no sleep and > no wakeup?
I guess I wasn't clear... All I tried to say is that
CONDITION = 1; wake_up_process();
does not need any _additional_ barrier in between.
I mentioned this because afaics people are often unsure if this is true or not, and to some degree this question initiated this discussion.
Oleg.
| |