]> git.baikalelectronics.ru Git - kernel.git/commit
csky: Add qspinlock support
authorGuo Ren <guoren@linux.alibaba.com>
Sun, 24 Jul 2022 01:32:34 +0000 (21:32 -0400)
committerGuo Ren <guoren@linux.alibaba.com>
Sun, 31 Jul 2022 09:24:42 +0000 (05:24 -0400)
commitfaa1e7484fa6e74eb66fd1a5048f792124ce01b5
treed877ed3a2314bfe6ebfb2a6aa57ea9ef0ec4ec91
parent5abf28f35950bad1b075893a68022d4b3c4a35e9
csky: Add qspinlock support

Enable qspinlock by the requirements mentioned in 936009da19086
("asm-generic: qspinlock: Indicate the use of mixed-size atomics").

C-SKY only has "ldex/stex" for all atomic operations. So csky give a
strong forward guarantee for "ldex/stex." That means when ldex grabbed
the cache line into $L1, it would block other cores from snooping the
address with several cycles. The atomic_fetch_add & xchg16 has the same
forward guarantee level in C-SKY.

Qspinlock has better code size and performance in a fast path.

Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Signed-off-by: Guo Ren <guoren@kernel.org>
arch/csky/Kconfig
arch/csky/include/asm/Kbuild
arch/csky/include/asm/cmpxchg.h
arch/csky/include/asm/spinlock.h [new file with mode: 0644]
arch/csky/include/asm/spinlock_types.h [new file with mode: 0644]