From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Paul E. McKenney" Subject: Re: [PATCH] doc: Replace smp_cond_acquire() with smp_cond_load_acquire() Date: Wed, 11 Jul 2018 09:11:55 -0700 Message-ID: <20180711161155.GU3593@linux.vnet.ibm.com> References: <1531216943-6382-1-git-send-email-andrea.parri@amarulasolutions.com> <1531314530-11624-1-git-send-email-andrea.parri@amarulasolutions.com> <20180711153840.GS3593@linux.vnet.ibm.com> <20180711154830.GA14348@andrea> Reply-To: paulmck@linux.vnet.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20180711154830.GA14348@andrea> Sender: linux-kernel-owner@vger.kernel.org To: Andrea Parri Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, Alan Stern , Will Deacon , Peter Zijlstra , Boqun Feng , Nicholas Piggin , David Howells , Jade Alglave , Luc Maranget , Akira Yokosawa , Daniel Lustig , Jonathan Corbet List-Id: linux-arch.vger.kernel.org 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 > > > Cc: Alan Stern > > > Cc: Will Deacon > > > Cc: Peter Zijlstra > > > Cc: Boqun Feng > > > Cc: Nicholas Piggin > > > Cc: David Howells > > > Cc: Jade Alglave > > > Cc: Luc Maranget > > > Cc: "Paul E. McKenney" > > > Cc: Akira Yokosawa > > > Cc: Daniel Lustig > > > Cc: Jonathan Corbet > > > --- > > > 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 > > > > > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:56024 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2389584AbeGKQOp (ORCPT ); Wed, 11 Jul 2018 12:14:45 -0400 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6BG8lii175657 for ; Wed, 11 Jul 2018 12:09:42 -0400 Received: from e17.ny.us.ibm.com (e17.ny.us.ibm.com [129.33.205.207]) by mx0b-001b2d01.pphosted.com with ESMTP id 2k5mcwj7e2-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 11 Jul 2018 12:09:42 -0400 Received: from localhost by e17.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 11 Jul 2018 12:09:41 -0400 Date: Wed, 11 Jul 2018 09:11:55 -0700 From: "Paul E. McKenney" Subject: Re: [PATCH] doc: Replace smp_cond_acquire() with smp_cond_load_acquire() Reply-To: paulmck@linux.vnet.ibm.com References: <1531216943-6382-1-git-send-email-andrea.parri@amarulasolutions.com> <1531314530-11624-1-git-send-email-andrea.parri@amarulasolutions.com> <20180711153840.GS3593@linux.vnet.ibm.com> <20180711154830.GA14348@andrea> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180711154830.GA14348@andrea> Message-ID: <20180711161155.GU3593@linux.vnet.ibm.com> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Andrea Parri Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, Alan Stern , Will Deacon , Peter Zijlstra , Boqun Feng , Nicholas Piggin , David Howells , Jade Alglave , Luc Maranget , Akira Yokosawa , Daniel Lustig , Jonathan Corbet Message-ID: <20180711161155.gWH2MmjyFXDWezz7TKqeip4dcDR_58bq3VJoU08Udp0@z> 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 > > > Cc: Alan Stern > > > Cc: Will Deacon > > > Cc: Peter Zijlstra > > > Cc: Boqun Feng > > > Cc: Nicholas Piggin > > > Cc: David Howells > > > Cc: Jade Alglave > > > Cc: Luc Maranget > > > Cc: "Paul E. McKenney" > > > Cc: Akira Yokosawa > > > Cc: Daniel Lustig > > > Cc: Jonathan Corbet > > > --- > > > 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 > > > > > >