Thread (43 messages) 43 messages, 4 authors, 2015-10-12

Re: [RFC v2 5/7] powerpc: atomic: Implement cmpxchg{,64}_* and atomic{,64}_cmpxchg_* variants

flat view

From: Paul E. McKenney <hidden>
Date: 2015-10-01 15:13:24
Also in: lkml

On Thu, Oct 01, 2015 at 02:36:26PM +0200, Peter Zijlstra wrote:
On Thu, Oct 01, 2015 at 02:27:15PM +0200, Peter Zijlstra wrote:
quoted
On Wed, Sep 16, 2015 at 11:49:33PM +0800, Boqun Feng wrote:
quoted
Unlike other atomic operation variants, cmpxchg{,64}_acquire and
atomic{,64}_cmpxchg_acquire don't have acquire semantics if the cmp part
fails, so we need to implement these using assembly.
I think that is actually expected and documented. That is, a cmpxchg
only implies barriers on success. See:

  ed2de9f74ecb ("locking/Documentation: Clarify failed cmpxchg() memory ordering semantics")
Also:

654672d4ba1a6 (Will Deacon     2015-08-06 17:54:37 +0100  28)  * store portion of the operation. Note that a failed cmpxchg_acquire
654672d4ba1a6 (Will Deacon     2015-08-06 17:54:37 +0100  29)  * does -not- imply any memory ordering constraints.
Agreed, no need for ordering on failed cmpxchg.

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help