[PATCH 00/11] ARC atomics update
Vineet Gupta
Vineet.Gupta1 at synopsys.com
Wed Aug 4 12:15:43 PDT 2021
Hi,
This series contains long due update to ARC atomics, discussed back
in 2018 [1] and [2]. I had them for arc64 port and decided to post them
here for some review and inclusion, after Mark's rework.
The main changes are use of relaxed atomics and generic bitops. Latter
does cause some cogen bloat on ARC due to signed args but that can be
reviewd seperately consider cross-arch impact.
The changes survive glibc testsuite with no regressions whatsoever.
Please review and provide any feedback.
Thx,
-Vineet
[1] https://lore.kernel.org/r/20180830144344.GW24142@hirez.programming.kicks-ass.net
[2] https://lore.kernel.org/r/20180830135749.GA13005@arm.com
Vineet Gupta (10):
ARC: atomics: disintegrate header
ARC: atomic: !LLSC: remove hack in atomic_set() for for UP
ARC: atomic: !LLSC: use int data type consistently
ARC: atomic64: LLSC: elide unused atomic_{and,or,xor,andnot}_return
ARC: atomics: implement relaxed variants
ARC: bitops: fls/ffs to take int (vs long) per asm-generic defines
ARC: xchg: !LLSC: remove UP micro-optimization/hack
ARC: cmpxchg/xchg: rewrite as macros to make type safe
ARC: cmpxchg/xchg: implement relaxed variants (LLSC config only)
ARC: atomic_cmpxchg/atomic_xchg: implement relaxed variants
Will Deacon (1):
ARC: switch to generic bitops
arch/arc/include/asm/atomic-llsc.h | 97 ++++++
arch/arc/include/asm/atomic-spinlock.h | 102 ++++++
arch/arc/include/asm/atomic.h | 444 ++-----------------------
arch/arc/include/asm/atomic64-arcv2.h | 250 ++++++++++++++
arch/arc/include/asm/bitops.h | 188 +----------
arch/arc/include/asm/cmpxchg.h | 233 ++++++-------
arch/arc/include/asm/smp.h | 14 -
arch/arc/kernel/smp.c | 2 -
8 files changed, 588 insertions(+), 742 deletions(-)
create mode 100644 arch/arc/include/asm/atomic-llsc.h
create mode 100644 arch/arc/include/asm/atomic-spinlock.h
create mode 100644 arch/arc/include/asm/atomic64-arcv2.h
--
2.25.1
More information about the linux-snps-arc
mailing list