Re: [PATCH 4/4] locking: Introduce smp_cond_acquire()

Paul E. McKenney
2015-11-12T15:40:16Z

On Thu, Nov 12, 2015 at 10:49:02PM +0800, Boqun Feng wrote:
> On Thu, Nov 12, 2015 at 06:40:04AM -0800, Paul E. McKenney wrote:
> [snip]
> >
> > I cannot resist suggesting that any lock that interacts with
> > spin_unlock_wait() must have all relevant acquisitions followed by
> > smp_mb__after_unlock_lock().
> >
>
> But
>
> 1. This would expand the purpose of smp_mb__after_unlock_lock(),
> right? smp_mb__after_unlock_lock() is for making UNLOCK-LOCK
> pair global transitive rather than guaranteeing no operations
> can be reorder before the STORE part of LOCK/ACQUIRE.

Indeed it would. Which might be OK.

> 2. If ARM64 has the same problem as PPC now,
> smp_mb__after_unlock_lock() can't help, as it's a no-op on
> ARM64.

Agreed, and that is why we need Will to weigh in.

Thanx, Paul