diff options
author | Guo Ren <guoren@linux.alibaba.com> | 2020-12-20 02:35:09 +0100 |
---|---|---|
committer | Guo Ren <guoren@linux.alibaba.com> | 2021-01-12 02:52:40 +0100 |
commit | d6c5cb9f8c7584e961a5b04fa2553659e1b2cce7 (patch) | |
tree | 60660f5aa15108d22517d800a4bd34588c5007a0 /arch/csky/Kconfig | |
parent | csky: Fixup barrier design (diff) | |
download | linux-d6c5cb9f8c7584e961a5b04fa2553659e1b2cce7.tar.xz linux-d6c5cb9f8c7584e961a5b04fa2553659e1b2cce7.zip |
csky: Fixup futex SMP implementation
Arnd said:
I would guess that for csky, this is a mistake, as the architecture
is fairly new and should be able to implement it.
Guo reply:
The c610, c807, c810 don't support SMP, so futex_cmpxchg_enabled = 1
with asm-generic's implementation.
For c860, there is no HAVE_FUTEX_CMPXCHG and cmpxchg_inatomic/inuser
implementation, so futex_cmpxchg_enabled = 0.
Thx for point it out, we'll implement cmpxchg_inatomic/inuser for
C860 and still use asm-generic for non-smp CPUs.
LTP test:
futex_wait01 1 TPASS : futex_wait(): errno=ETIMEDOUT(110): Connection timed out
futex_wait01 2 TPASS : futex_wait(): errno=EAGAIN/EWOULDBLOCK(11): Resource temporarily unavailable
futex_wait01 3 TPASS : futex_wait(): errno=ETIMEDOUT(110): Connection timed out
futex_wait01 4 TPASS : futex_wait(): errno=EAGAIN/EWOULDBLOCK(11): Resource temporarily unavailable
futex_wait02 1 TPASS : futex_wait() woken up
futex_wait03 1 TPASS : futex_wait() woken up
futex_wait04 1 TPASS : futex_wait() returned -1: errno=EAGAIN/EWOULDBLOCK(11): Resource temporarily unavailable
Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul E. McKenney <paulmck@kernel.org>
Link: https://lore.kernel.org/lkml/CAK8P3a3+WaQNyJ6Za2qfu6=0mBgU1hApnRXrdp1b1=P7wwyRUg@mail.gmail.com/
Diffstat (limited to 'arch/csky/Kconfig')
-rw-r--r-- | arch/csky/Kconfig | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig index 21b2ab099c8b..c74a8e2e8549 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -48,6 +48,7 @@ config CSKY select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_ERROR_INJECTION + select HAVE_FUTEX_CMPXCHG if FUTEX && SMP select HAVE_FTRACE_MCOUNT_RECORD select HAVE_KERNEL_GZIP select HAVE_KERNEL_LZO |