[PATCH 1/2] riscv: percpu:Add riscv percpu operations
Christoph Lameter
cl at gentwo.de
Sun Oct 30 06:19:22 PDT 2022
On Wed, 26 Oct 2022, Wen Yao wrote:
> This patch use riscv AMO(Atomic Memory Operation) instructions to
> optimise some this_cpu_and this_cpu_or this_cpu_add operations.
> It reuse cmpxchg_local() to impletment this_cpu_cmpxchg macros.
> It reuse xchg_relaxed() to impletment this_cpu_xchg macros.
Are you sure that these changes gives you any benefit vs disabling preempt
or irq offs? I dont know too much about atomics on riscv but it looks like
you are using full atomics. The performance penalty for the use of those
is usually drastic. Often irq/preempt off is better.
Could you run some of the synthetic tests to establish the benefit? F.e.
run the synthetic tests for the slub allcator with and without these
patches.
> + __asm__ __volatile__( \
> + "amo" #asm_op ".w" \
amo = atomic operation?
More information about the linux-riscv
mailing list