Skip to content

Rewrite of percpu atomics and introduction of LSE

Will Deacon linux-arm-kernel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 9 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4arm64: Avoid redundant type conversions in xchg() and cmpxchg()arch/arm64/include/asm/atomic_ll_sc.h arch/arm64/include/asm/atomic_lse.h arch/arm64/include/asm/cmpxchg.h+108 -1071 reply
2/4arm64: Avoid masking "old" for LSE cmpxchg() implementationarch/arm64/include/asm/atomic_ll_sc.h arch/arm64/include/asm/atomic_lse.h arch/arm64/include/asm/cmpxchg.h+12 -47 replies
3/4arm64: percpu: Rewrite per-cpu ops to allow use of LSE atomicsarch/arm64/include/asm/percpu.h+160 -2300 replies
4/4arm64: cmpxchg: Use "K" instead of "L" for ll/sc immediate constraintarch/arm64/include/asm/atomic_ll_sc.h+1 -11 reply

Reviews trailers per patch

1 of 4 patches has a Reviewed-by or Acked-by.

PatchArd Biesheuvel
1/4
2/4
3/4
4/4A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/4] Rewrite of percpu atomics and introduction of LSE

Hi all,

Whilst looking at what it would take to use LSE atomics for the percpu operations, I ended up rewriting most of our implementation to address a number of issues I spotted.

The result is a net reduction of code, whilst at the same time avoiding duplication, adding support for LSE and improving our manipulation of the preempt count.

Ard -- I think most of this is orthogonal to your LSE work, since this doesn't make use of the out-of-line atomics at all. Still, please take a look all the same!

Cheers,

Will

--->8

Will Deacon (4):
arm64: Avoid redundant type conversions in xchg() and cmpxchg()
arm64: Avoid masking "old" for LSE cmpxchg() implementation
arm64: percpu: Rewrite per-cpu ops to allow use of LSE atomics
arm64: cmpxchg: Use "K" instead of "L" for ll/sc immediate constraint

 arch/arm64/include/asm/atomic_ll_sc.h |  63 +++---
 arch/arm64/include/asm/atomic_lse.h   |  48 ++---
 arch/arm64/include/asm/cmpxchg.h      | 116 +++++-----
 arch/arm64/include/asm/percpu.h       | 390 ++++++++++++++--------------------
 4 files changed, 278 insertions(+), 339 deletions(-)
Signature · 1 line
2.1.4