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


Groups > linux.kernel > #1216575

Re: wake_up_process implied memory barrier clarification

From Boqun Feng <boqun.feng@gmail.com>
Newsgroups linux.kernel
Subject Re: wake_up_process implied memory barrier clarification
Date 2015-09-01 05:50 +0200
Message-ID <q3KK5-3aM-3@gated-at.bofh.it> (permalink)
References (5 earlier) <q2KCt-65w-1@gated-at.bofh.it> <q2Psu-4AG-33@gated-at.bofh.it> <q3liF-8sy-5@gated-at.bofh.it> <q3C9Q-7wi-7@gated-at.bofh.it> <q3EbE-1Wt-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Hi Paul,

On Mon, Aug 31, 2015 at 01:37:39PM -0700, 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?
> 

If there is no sleep and no wakeup, it means only CONDITION changed.
Either CONDITION is a single variable or it should maintains internal
ordering guarantee itself. And there is no need for barriers, because
there is only one shared resource we are talking about, right?

But I'm still a little confused at Oleg's words:

"What is really important is that we have a barrier before we _read_ the
task state."

I read is as "What is really important is that we have a barrier before
we _read_ the task state and _after_ we write the CONDITION", if I don't
misunderstand Oleg, this means a STORE-barrier-LOAD sequence, which IIUC
can't pair with anything.

So, there might be some tricky barrier usage here?

Regards,
Boqun

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


Thread

wake_up_process implied memory barrier clarification Michal Hocko <mhocko@kernel.org> - 2015-08-27 14:30 +0200
  Re: wake_up_process implied memory barrier clarification Peter Zijlstra <peterz@infradead.org> - 2015-08-27 14:50 +0200
    Re: wake_up_process implied memory barrier clarification Michal Hocko <mhocko@kernel.org> - 2015-08-27 15:20 +0200
      Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-08-27 20:30 +0200
        Re: wake_up_process implied memory barrier clarification Michal Hocko <mhocko@kernel.org> - 2015-08-28 17:00 +0200
          Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-08-28 18:10 +0200
            Re: wake_up_process implied memory barrier clarification Boqun Feng <boqun.feng@gmail.com> - 2015-08-29 11:30 +0200
              Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-08-29 16:40 +0200
                Re: wake_up_process implied memory barrier clarification Boqun Feng <boqun.feng@gmail.com> - 2015-08-31 02:40 +0200
                Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-08-31 20:40 +0200
                Re: wake_up_process implied memory barrier clarification "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-08-31 22:50 +0200
                Re: wake_up_process implied memory barrier clarification Boqun Feng <boqun.feng@gmail.com> - 2015-09-01 05:50 +0200
                Re: wake_up_process implied memory barrier clarification "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-09-01 06:10 +0200
                Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-09-01 12:10 +0200
                Re: wake_up_process implied memory barrier clarification Boqun Feng <boqun.feng@gmail.com> - 2015-09-01 17:00 +0200
                Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-09-01 18:50 +0200
                Re: wake_up_process implied memory barrier clarification Boqun Feng <boqun.feng@gmail.com> - 2015-09-02 03:20 +0200
                Re: wake_up_process implied memory barrier clarification Oleg Nesterov <oleg@redhat.com> - 2015-09-01 11:50 +0200

csiph-web