linux/arch/csky
Guo Ren 186f69b64c csky: atomic: Optimize cmpxchg with acquire & release
Optimize cmpxchg with ASM acquire/release fence ASM instructions
instead of previous generic based. Prevent a fence when cmxchg's
first load != old.

Comments by Rutland:

8e86f0b409 ("arm64: atomics: fix use of acquire + release for
full barrier semantics")

Comments by Boqun:

FWIW, you probably need to make sure that a barrier instruction inside
an lr/sc loop is a good thing. IIUC, the execution time of a barrier
instruction is determined by the status of store buffers and invalidate
queues (and probably other stuffs), so it may increase the execution
time of the lr/sc loop, and make it unlikely to succeed. But this really
depends on how the arch executes these instructions.

Link: https://lore.kernel.org/linux-riscv/CAJF2gTSAxpAi=LbAdu7jntZRUa=-dJwL0VfmDfBV5MHB=rcZ-w@mail.gmail.com/T/#m27a0f1342995deae49ce1d0e1f2683f8a181d6c3
Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Signed-off-by: Guo Ren <guoren@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
2022-04-25 13:51:42 +08:00
..
abiv1 csky: Add C based string functions 2022-04-18 21:23:55 +08:00
abiv2 csky: Add C based string functions 2022-04-18 21:23:55 +08:00
boot treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
configs csky: Minimize defconfig to support buildroot config.fragment 2020-02-21 15:43:25 +08:00
include csky: atomic: Optimize cmpxchg with acquire & release 2022-04-25 13:51:42 +08:00
kernel csky: optimize memcpy_{from,to}io() and memset_io() 2022-04-18 21:23:55 +08:00
lib csky: Add C based string functions 2022-04-18 21:23:55 +08:00
mm csky: Fix versioncheck warnings 2022-04-08 15:05:23 +08:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig csky: Add C based string functions 2022-04-18 21:23:55 +08:00
Kconfig.debug treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.platforms csky/Kconfig: Add Kconfig.platforms to support some drivers 2020-02-21 15:43:24 +08:00
Makefile kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00