Re: [PATCH v2] MCS spinlock: Use smp_cond_load_acquire()

From: Will Deacon
Date: Wed Apr 13 2016 - 13:43:12 EST


On Tue, Apr 12, 2016 at 08:02:17PM -0700, Jason Low wrote:
> For qspinlocks on ARM64, we would like to use WFE instead
> of purely spinning. Qspinlocks internally have lock
> contenders spin on an MCS lock.
>
> Update arch_mcs_spin_lock_contended() such that it uses
> the new smp_cond_load_acquire() so that ARM64 can also
> override this spin loop with its own implementation using WFE.
>
> On x86, it can also cheaper to use this than spinning on
> smp_load_acquire().
>
> Signed-off-by: Jason Low <jason.low2@xxxxxx>

FWIW, we just override arch_mcs_spin_lock_contended entirely for arch/arm/
and use wfe there so we could do the same for arm64 in mainline already.

Will