Amend commit 1f03e8d2919270 ("locking/barriers: Replace smp_cond_acquire()
with smp_cond_load_acquire()") by updating the documentation accordingly.
Signed-off-by: Andrea Parri <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Boqun Feng <[email protected]>
Cc: Nicholas Piggin <[email protected]>
Cc: David Howells <[email protected]>
Cc: Jade Alglave <[email protected]>
Cc: Luc Maranget <[email protected]>
Cc: "Paul E. McKenney" <[email protected]>
Cc: Akira Yokosawa <[email protected]>
Cc: Daniel Lustig <[email protected]>
Cc: Jonathan Corbet <[email protected]>
---
Documentation/memory-barriers.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index 0d8d7ef131e9a..987a4e6cc0cd8 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -471,8 +471,8 @@ 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. The later builds the necessary
+ ACQUIRE semantics from relying on a control dependency and smp_rmb().
Memory operations that occur before an ACQUIRE operation may appear to
happen after it completes.
--
2.7.4
On Tue, Jul 10, 2018 at 12:02:23PM +0200, Andrea Parri wrote:
> Amend commit 1f03e8d2919270 ("locking/barriers: Replace smp_cond_acquire()
> with smp_cond_load_acquire()") by updating the documentation accordingly.
>
> Signed-off-by: Andrea Parri <[email protected]>
> Cc: Alan Stern <[email protected]>
> Cc: Will Deacon <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Boqun Feng <[email protected]>
> Cc: Nicholas Piggin <[email protected]>
> Cc: David Howells <[email protected]>
> Cc: Jade Alglave <[email protected]>
> Cc: Luc Maranget <[email protected]>
> Cc: "Paul E. McKenney" <[email protected]>
> Cc: Akira Yokosawa <[email protected]>
> Cc: Daniel Lustig <[email protected]>
> Cc: Jonathan Corbet <[email protected]>
> ---
> Documentation/memory-barriers.txt | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
> index 0d8d7ef131e9a..987a4e6cc0cd8 100644
> --- a/Documentation/memory-barriers.txt
> +++ b/Documentation/memory-barriers.txt
> @@ -471,8 +471,8 @@ 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. The later builds the necessary
> + ACQUIRE semantics from relying on a control dependency and smp_rmb().
Still not completely accurate: smp_rmb() would better be replaced by
smp_acquire__after_ctrl_dep() (arm64 excluded). Mmh... I think I'll
just remove that "The latter builds the [...]" and resend; thoughts?
Andrea
>
> Memory operations that occur before an ACQUIRE operation may appear to
> happen after it completes.
> --
> 2.7.4
>
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 <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Boqun Feng <[email protected]>
Cc: Nicholas Piggin <[email protected]>
Cc: David Howells <[email protected]>
Cc: Jade Alglave <[email protected]>
Cc: Luc Maranget <[email protected]>
Cc: "Paul E. McKenney" <[email protected]>
Cc: Akira Yokosawa <[email protected]>
Cc: Daniel Lustig <[email protected]>
Cc: Jonathan Corbet <[email protected]>
---
Documentation/memory-barriers.txt | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
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
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 <[email protected]>
> Cc: Alan Stern <[email protected]>
> Cc: Will Deacon <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Boqun Feng <[email protected]>
> Cc: Nicholas Piggin <[email protected]>
> Cc: David Howells <[email protected]>
> Cc: Jade Alglave <[email protected]>
> Cc: Luc Maranget <[email protected]>
> Cc: "Paul E. McKenney" <[email protected]>
> Cc: Akira Yokosawa <[email protected]>
> Cc: Daniel Lustig <[email protected]>
> Cc: Jonathan Corbet <[email protected]>
> ---
> 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?
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
>
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 <[email protected]>
> > Cc: Alan Stern <[email protected]>
> > Cc: Will Deacon <[email protected]>
> > Cc: Peter Zijlstra <[email protected]>
> > Cc: Boqun Feng <[email protected]>
> > Cc: Nicholas Piggin <[email protected]>
> > Cc: David Howells <[email protected]>
> > Cc: Jade Alglave <[email protected]>
> > Cc: Luc Maranget <[email protected]>
> > Cc: "Paul E. McKenney" <[email protected]>
> > Cc: Akira Yokosawa <[email protected]>
> > Cc: Daniel Lustig <[email protected]>
> > Cc: Jonathan Corbet <[email protected]>
> > ---
> > 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.
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
> >
>
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 <[email protected]>
> > > Cc: Alan Stern <[email protected]>
> > > Cc: Will Deacon <[email protected]>
> > > Cc: Peter Zijlstra <[email protected]>
> > > Cc: Boqun Feng <[email protected]>
> > > Cc: Nicholas Piggin <[email protected]>
> > > Cc: David Howells <[email protected]>
> > > Cc: Jade Alglave <[email protected]>
> > > Cc: Luc Maranget <[email protected]>
> > > Cc: "Paul E. McKenney" <[email protected]>
> > > Cc: Akira Yokosawa <[email protected]>
> > > Cc: Daniel Lustig <[email protected]>
> > > Cc: Jonathan Corbet <[email protected]>
> > > ---
> > > 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
> > >
> >
>