On Wed, Jul 11, 2018 at 05:53:55PM +0200, Andrea Parri wrote: > On Wed, Jul 11, 2018 at 08:38:40AM -0700, Paul E. McKenney wrote: > > On Wed, Jul 11, 2018 at 03:08:50PM +0200, Andrea Parri wrote: > > > Amend commit 1f03e8d2919270 ("locking/barriers: Replace smp_cond_acquire() > > > with smp_cond_load_acquire()") by updating the documentation accordingly. > > > Also remove some obsolete information related to the implementation. > > > > > > Signed-off-by: Andrea Parri <andrea.parri@xxxxxxxxxxxxxxxxxxxx> > > > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > > > Cc: Will Deacon <will.deacon@xxxxxxx> > > > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > > > Cc: Boqun Feng <boqun.feng@xxxxxxxxx> > > > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > > > Cc: David Howells <dhowells@xxxxxxxxxx> > > > Cc: Jade Alglave <j.alglave@xxxxxxxxx> > > > Cc: Luc Maranget <luc.maranget@xxxxxxxx> > > > Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> > > > Cc: Akira Yokosawa <akiyks@xxxxxxxxx> > > > Cc: Daniel Lustig <dlustig@xxxxxxxxxx> > > > Cc: Jonathan Corbet <corbet@xxxxxxx> > > > --- > > > Documentation/memory-barriers.txt | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > I have queued this for further review, thank you! Just to confirm, > > the reason that the old passage was obsolete is because ARMv8 implements > > smp_cond_load_acquire() as a straight acquire load, correct? > > Thanks. Yes; the generic code builds on a control dependency and an > smp_acquire__after_ctrl_dep() (which defaults to smp_rmb()); but the > required ordering on arm64 is given by (its) smp_load_acquire(). > > I thought that entering this level of details (and keeping it up-to- > date ;) wasn't really worth/needed for this high-level doc. Agreed! Thanx, Paul > Andrea > > > > > > Thanx, Paul > > > > > diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt > > > index 0d8d7ef131e9a..c1d913944ad8b 100644 > > > --- a/Documentation/memory-barriers.txt > > > +++ b/Documentation/memory-barriers.txt > > > @@ -471,8 +471,7 @@ And a couple of implicit varieties: > > > operations after the ACQUIRE operation will appear to happen after the > > > ACQUIRE operation with respect to the other components of the system. > > > ACQUIRE operations include LOCK operations and both smp_load_acquire() > > > - and smp_cond_acquire() operations. The later builds the necessary ACQUIRE > > > - semantics from relying on a control dependency and smp_rmb(). > > > + and smp_cond_load_acquire() operations. > > > > > > Memory operations that occur before an ACQUIRE operation may appear to > > > happen after it completes. > > > -- > > > 2.7.4 > > > > > >