Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-25 Thread Boqun Feng
On Fri, Sep 25, 2015 at 02:29:04PM -0700, Paul E. McKenney wrote: > On Wed, Sep 23, 2015 at 08:07:55AM +0800, Boqun Feng wrote: > > On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > > > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > > > On Tue, Sep 22, 2015 at

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-25 Thread Paul E. McKenney
On Wed, Sep 23, 2015 at 08:07:55AM +0800, Boqun Feng wrote: > On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > > > On Mon, Sep 21, 2015 at

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-25 Thread Paul E. McKenney
On Wed, Sep 23, 2015 at 08:07:55AM +0800, Boqun Feng wrote: > On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > > > On Mon, Sep 21, 2015 at

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-25 Thread Boqun Feng
On Fri, Sep 25, 2015 at 02:29:04PM -0700, Paul E. McKenney wrote: > On Wed, Sep 23, 2015 at 08:07:55AM +0800, Boqun Feng wrote: > > On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > > > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > > > On Tue, Sep 22, 2015 at

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-22 Thread Boqun Feng
On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > > > Hi Boqun, > > > > > > > > On

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-22 Thread Paul E. McKenney
On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > > Hi Boqun, > > > > > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > > > On Sat, Sep

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-22 Thread Boqun Feng
On Tue, Sep 22, 2015 at 08:25:40AM -0700, Paul E. McKenney wrote: > On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > > > Hi Boqun, > > > > > > > > On

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-22 Thread Paul E. McKenney
On Tue, Sep 22, 2015 at 07:37:04AM +0800, Boqun Feng wrote: > On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > > Hi Boqun, > > > > > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > > > On Sat, Sep

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Boqun Feng
On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > Hi Boqun, > > > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > > > On Fri, Sep 18,

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Boqun Feng
On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > Hi Boqun, > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > > > On Wed, Sep 16, 2015

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Will Deacon
Hi Boqun, On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > > > On powerpc, we don't need

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Boqun Feng
On Tue, Sep 22, 2015 at 07:26:56AM +0800, Boqun Feng wrote: > On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > > Hi Boqun, > > > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > > > On Fri, Sep 18,

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Boqun Feng
On Mon, Sep 21, 2015 at 11:24:27PM +0100, Will Deacon wrote: > Hi Boqun, > > On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > > > On Wed, Sep 16, 2015

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-21 Thread Will Deacon
Hi Boqun, On Sun, Sep 20, 2015 at 09:23:03AM +0100, Boqun Feng wrote: > On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > > > On powerpc, we don't need

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-20 Thread Boqun Feng
On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > Hi Will, > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > > On powerpc, we don't need a general memory barrier to achieve acquire and > > > release

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-20 Thread Boqun Feng
On Sat, Sep 19, 2015 at 11:33:10PM +0800, Boqun Feng wrote: > Hi Will, > > On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > > On powerpc, we don't need a general memory barrier to achieve acquire and > > > release

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-19 Thread Boqun Feng
Hi Will, On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > On powerpc, we don't need a general memory barrier to achieve acquire and > > release semantics, so __atomic_op_{acquire,release} can be implemented > > using

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-19 Thread Boqun Feng
Hi Will, On Fri, Sep 18, 2015 at 05:59:02PM +0100, Will Deacon wrote: > On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > > On powerpc, we don't need a general memory barrier to achieve acquire and > > release semantics, so __atomic_op_{acquire,release} can be implemented > > using

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-18 Thread Will Deacon
On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > On powerpc, we don't need a general memory barrier to achieve acquire and > release semantics, so __atomic_op_{acquire,release} can be implemented > using "lwsync" and "isync". I'm assuming isync+ctrl isn't transitive, so we need to

Re: [RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-18 Thread Will Deacon
On Wed, Sep 16, 2015 at 04:49:31PM +0100, Boqun Feng wrote: > On powerpc, we don't need a general memory barrier to achieve acquire and > release semantics, so __atomic_op_{acquire,release} can be implemented > using "lwsync" and "isync". I'm assuming isync+ctrl isn't transitive, so we need to

[RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-16 Thread Boqun Feng
On powerpc, we don't need a general memory barrier to achieve acquire and release semantics, so __atomic_op_{acquire,release} can be implemented using "lwsync" and "isync". For release semantics, since we only need to ensure all memory accesses that issue before must take effects before the

[RFC v2 3/7] powerpc: atomic: Implement atomic{,64}_{add,sub}_return_* variants

2015-09-16 Thread Boqun Feng
On powerpc, we don't need a general memory barrier to achieve acquire and release semantics, so __atomic_op_{acquire,release} can be implemented using "lwsync" and "isync". For release semantics, since we only need to ensure all memory accesses that issue before must take effects before the