[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZErTyKxjGQvF6EqP@gmail.com>
Date: Thu, 27 Apr 2023 21:58:00 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org,
Peter Zijlstra <peterz@...radead.org>,
Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>,
Boqun Feng <boqun.feng@...il.com>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: [GIT PULL] locking changes for v6.4
Linus,
Please pull the latest locking/core git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2023-04-27
# HEAD: 93eff603d6a2bc1895eeb7063dbd0661bb760b74 locking/atomic: Correct (cmp)xhcg instrumentation
Locking changes in v6.4:
- Introduce local{,64}_try_cmpxchg() - a slightly more optimal
primitive, which will be used in perf events ring-buffer code.
- Add more atomic_add_negative() variants, used by rcuref:
- Add rcuref - A scalable reference count implementation for RCU managed objects
- Add non-atomic __xchg() variant, use it in a couple of places
- Misc cleanups and fixes.
NOTE: the internal merge commit of locking/rcuref [1afa833d607b6] merging
two commits from a WIP branch has no explanation. I noticed this too
late, and we can re-do this tree if it's an issue.
Thanks,
Ingo
------------------>
Andrzej Hajda (5):
arch: rename all internal names __xchg to __arch_xchg
linux/include: add non-atomic version of xchg
arch/*/uprobes: simplify arch_uretprobe_hijack_return_addr
llist: simplify __llist_del_all
drm/i915/gt: use __xchg instead of internal helper
Mark Rutland (1):
locking/atomic: Correct (cmp)xhcg instrumentation
Sebastian Andrzej Siewior (1):
locking/rwbase: Mitigate indefinite writer starvation.
Thomas Gleixner (2):
atomics: Provide atomic_add_negative() variants
atomics: Provide rcuref - scalable reference counting
Uros Bizjak (4):
locking/atomic: Add generic try_cmpxchg{,64}_local support
locking/generic: Wire up local{,64}_try_cmpxchg
locking/arch: Wire up local_try_cmpxchg
locking/x86: Define arch_try_cmpxchg_local
arch/alpha/include/asm/cmpxchg.h | 10 +-
arch/alpha/include/asm/local.h | 12 +-
arch/arc/include/asm/cmpxchg.h | 4 +-
arch/arm/include/asm/cmpxchg.h | 7 +-
arch/arm/probes/uprobes/core.c | 8 +-
arch/arm64/include/asm/cmpxchg.h | 7 +-
arch/arm64/kernel/probes/uprobes.c | 9 +-
arch/csky/kernel/probes/uprobes.c | 9 +-
arch/hexagon/include/asm/cmpxchg.h | 10 +-
arch/ia64/include/asm/cmpxchg.h | 2 +-
arch/ia64/include/uapi/asm/cmpxchg.h | 4 +-
arch/loongarch/include/asm/cmpxchg.h | 4 +-
arch/loongarch/include/asm/local.h | 13 +-
arch/m68k/include/asm/cmpxchg.h | 6 +-
arch/mips/include/asm/cmpxchg.h | 4 +-
arch/mips/include/asm/local.h | 13 +-
arch/mips/kernel/uprobes.c | 10 +-
arch/openrisc/include/asm/cmpxchg.h | 10 +-
arch/parisc/include/asm/cmpxchg.h | 4 +-
arch/powerpc/include/asm/cmpxchg.h | 4 +-
arch/powerpc/include/asm/local.h | 11 +
arch/powerpc/kernel/uprobes.c | 10 +-
arch/riscv/include/asm/atomic.h | 2 +-
arch/riscv/include/asm/cmpxchg.h | 4 +-
arch/riscv/kernel/probes/uprobes.c | 9 +-
arch/s390/include/asm/cmpxchg.h | 8 +-
arch/s390/kernel/uprobes.c | 7 +-
arch/sh/include/asm/cmpxchg.h | 4 +-
arch/sparc/include/asm/cmpxchg_32.h | 4 +-
arch/sparc/include/asm/cmpxchg_64.h | 6 +-
arch/sparc/kernel/uprobes.c | 7 +-
arch/x86/include/asm/cmpxchg.h | 6 +
arch/x86/include/asm/local.h | 13 +-
arch/xtensa/include/asm/cmpxchg.h | 4 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 4 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 4 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 4 +-
drivers/gpu/drm/i915/gt/intel_gsc.c | 2 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 4 +-
drivers/gpu/drm/i915/gt/intel_gt_pm.c | 2 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 6 +-
drivers/gpu/drm/i915/gt/intel_migrate.c | 2 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 2 +-
drivers/gpu/drm/i915/gt/intel_rps.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_context.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_ring_submission.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_timeline.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 2 +-
drivers/gpu/drm/i915/i915_utils.h | 1 +
include/asm-generic/local.h | 1 +
include/asm-generic/local64.h | 12 +-
include/linux/atomic/atomic-arch-fallback.h | 230 ++++++++++++++++-
include/linux/atomic/atomic-instrumented.h | 152 ++++++++---
include/linux/atomic/atomic-long.h | 38 ++-
include/linux/llist.h | 6 +-
include/linux/non-atomic/xchg.h | 19 ++
include/linux/rcuref.h | 155 ++++++++++++
include/linux/types.h | 6 +
kernel/locking/rwbase_rt.c | 9 -
lib/Makefile | 2 +-
lib/rcuref.c | 281 +++++++++++++++++++++
scripts/atomic/atomics.tbl | 2 +-
scripts/atomic/fallbacks/add_negative | 11 +-
scripts/atomic/gen-atomic-fallback.sh | 4 +
scripts/atomic/gen-atomic-instrumented.sh | 8 +-
67 files changed, 1019 insertions(+), 207 deletions(-)
create mode 100644 include/linux/non-atomic/xchg.h
create mode 100644 include/linux/rcuref.h
create mode 100644 lib/rcuref.c
Powered by blists - more mailing lists