[PATCH cmpxchg 0/3] Provide emulation for one-byte cmpxchg()

Paul E. McKenney
2024-08-05T19:20:35Z

Hello!

This series provides an emulation function for one-byte cmpxchg(),
and uses it for the remaining architectures not supporting these in
hardware and not providing emulation. The emulation is in terms of
the fully ordered four-byte cmpxchg() that is supplied by all of these
architectures. The emulation has been used in mainline since v6.9
by csky.

Once this emulation is in place for all architectures needing
it, RCU Tasks will use this capability in place of the current
rcu_trc_cmpxchg_need_qs() open-coding of this emulation.

1. xtensa: Emulate one-byte cmpxchg.

2. ARC: Emulate one-byte cmpxchg.

3. sh: Emulate one-byte cmpxchg.

Thanx, Paul

------------------------------------------------------------------------

arc/Kconfig | 1 +
arc/include/asm/cmpxchg.h | 33 ++++++++++++++++++++++++---------
sh/Kconfig | 1 +
sh/include/asm/cmpxchg.h | 3 +++
xtensa/Kconfig | 1 +
xtensa/include/asm/cmpxchg.h | 2 ++
6 files changed, 32 insertions(+), 9 deletions(-)