arm64: prefetch: don't provide spin_lock_prefetch with LSE
authorWill Deacon <will.deacon@arm.com>
Tue, 2 Feb 2016 12:46:23 +0000 (12:46 +0000)
committerAlex Shi <alex.shi@linaro.org>
Wed, 11 May 2016 14:19:17 +0000 (22:19 +0800)
commit41cb2829d020e4fdaeb5eb9286153f4c7dc8e7dd
tree9164701a046435860413f133dee6dbebcabaec42
parenta0e40450cf255994501d3f84081f95b1fb41623d
arm64: prefetch: don't provide spin_lock_prefetch with LSE

The LSE atomics rely on us not dirtying data at L1 if we can avoid it,
otherwise many of the potential scalability benefits are lost.

This patch replaces spin_lock_prefetch with a nop when the LSE atomics
are in use, so that users don't shoot themselves in the foot by causing
needless coherence traffic at L1.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Tested-by: Andrew Pinski <apinski@cavium.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit cd5e10bdf3795d22f10787bb1991c43798c885d5)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
arch/arm64/include/asm/processor.h