Rewrite of percpu atomics and introduction of LSE
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest4 patches 9 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | arm64: Avoid redundant type conversions in xchg() and cmpxchg()arch/ arch/ arch/ | +108 | 1 reply | |
| 2/4 | arm64: Avoid masking "old" for LSE cmpxchg() implementationarch/ arch/ arch/ | +12 | 7 replies | |
| 3/4 | arm64: percpu: Rewrite per-cpu ops to allow use of LSE atomicsarch/ | +160 | 0 replies | |
| 4/4 | arm64: cmpxchg: Use "K" instead of "L" for ll/sc immediate constraintarch/ | +1 | 1 reply |
Reviews trailers per patch
1 of 4 patches has a Reviewed-by or Acked-by.
| Patch | Ard Biesheuvel |
|---|---|
| 1/4 | |
| 2/4 | |
| 3/4 | |
| 4/4 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
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