arm64: cmpxchg: patch in lse instructions when supported by the CPU
authorWill Deacon <will.deacon@arm.com>
Thu, 23 Apr 2015 19:08:49 +0000 (20:08 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 27 Jul 2015 14:28:51 +0000 (15:28 +0100)
commitc342f78217e822d2178265b0b1de232eeb717149
tree2c1de7284bb6671aa9cb4e8a0f85a119d64de3a2
parentc8366ba0fb65063b6b4f69c7af1ea74152435590
arm64: cmpxchg: patch in lse instructions when supported by the CPU

On CPUs which support the LSE atomic instructions introduced in ARMv8.1,
it makes sense to use them in preference to ll/sc sequences.

This patch introduces runtime patching of our cmpxchg primitives so that
the LSE cas instruction is used instead.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/atomic.h
arch/arm64/include/asm/atomic_ll_sc.h
arch/arm64/include/asm/atomic_lse.h
arch/arm64/include/asm/cmpxchg.h