Re: [RFC][PATCH 3/3] locking,arm64: Introduce cmpwait()

From: Peter Zijlstra
Date: Fri Apr 22 2016 - 22:37:46 EST


On Sat, Apr 23, 2016 at 12:08:57AM +0800, Boqun Feng wrote:
> How about replace smp_rmb() with a smp_acquire_barrier__after_cmpwait()?
> This barrier is designed to provide an ACQUIRE ordering when combining a
> cmpwait() .

That's a horrible name for a barrier :-)

> And cmpwait() only has minimal ordering guarantee, but if it is actually
> an ACQUIRE, then the corresponding smp_acquire_barrier__after_cmpwait()
> is just empty.
>
> We might need this special barrier on ppc, because we can implement it
> with "isync" given that cmpwait() has control dependency and ctrl+isync
> is ACQUIRE on ppc.
>
> Thoughts?

Provide a PPC specific smp_cond_load_acquire() using ISYNC ?