[GIT PULL] locking changes for v6.15

From: Ingo Molnar
Date: Sat Mar 22 2025 - 04:48:52 EST


Linus,

Please pull the latest locking/core Git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2025-03-22

# HEAD: 35e6b537af85d97e0aafd8f2829dfa884a22df20 lockdep: Remove disable_irq_lockdep()

Locking changes for v6.15:

Locking primitives:

- Micro-optimize percpu_{,try_}cmpxchg{64,128}_op() and {,try_}cmpxchg{64,128}
on x86 (Uros Bizjak)

- mutexes: extend debug checks in mutex_lock() (Yunhui Cui)

- Misc cleanups (Uros Bizjak)

Lockdep:

- Fix might_fault() lockdep check of current->mm->mmap_lock (Peter Zijlstra)

- Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
(Sebastian Andrzej Siewior)

- Disable KASAN instrumentation of lockdep.c (Waiman Long)

- Add kasan_check_byte() check in lock_acquire() (Waiman Long)

- Misc cleanups (Sebastian Andrzej Siewior)

Rust runtime integration:

- Use Pin for all LockClassKey usages (Mitchell Levy)
- sync: Add accessor for the lock behind a given guard (Alice Ryhl)
- sync: condvar: Add wait_interruptible_freezable() (Alice Ryhl)
- sync: lock: Add an example for Guard:: Lock_ref() (Boqun Feng)

Split-lock detection feature (x86):

- Fix warning mode with disabled mitigation mode (Maksim Davydov)

Locking events:

- Add locking events for rtmutex slow paths (Waiman Long)
- Add locking events for lockdep (Waiman Long)

Thanks,

Ingo

------------------>
Alice Ryhl (2):
rust: sync: Add accessor for the lock behind a given guard
rust: sync: condvar: Add wait_interruptible_freezable()

Boqun Feng (1):
rust: sync: lock: Add an example for Guard:: Lock_ref()

Maksim Davydov (1):
x86/split_lock: Fix the delayed detection logic

Mitchell Levy (1):
rust: lockdep: Use Pin for all LockClassKey usages

Peter Zijlstra (1):
lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock

Sebastian Andrzej Siewior (2):
lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
lockdep: Remove disable_irq_lockdep()

Uros Bizjak (3):
x86/locking: Use ALT_OUTPUT_SP() for percpu_{,try_}cmpxchg{64,128}_op()
x86/locking: Use asm_inline for {,try_}cmpxchg{64,128} emulations
x86/locking: Remove semicolon from "lock" prefix

Waiman Long (4):
locking/lock_events: Add locking events for rtmutex slow paths
locking/lock_events: Add locking events for lockdep
locking/lockdep: Disable KASAN instrumentation of lockdep.c
locking/lockdep: Add kasan_check_byte() check in lock_acquire()

Yunhui Cui (1):
locking/mutex: Add MUTEX_WARN_ON() into fast path


arch/x86/include/asm/alternative.h | 2 +-
arch/x86/include/asm/barrier.h | 8 ++--
arch/x86/include/asm/cmpxchg.h | 4 +-
arch/x86/include/asm/cmpxchg_32.h | 36 ++++++++++--------
arch/x86/include/asm/edac.h | 2 +-
arch/x86/include/asm/percpu.h | 77 ++++++++++++++++++--------------------
arch/x86/include/asm/sync_bitops.h | 12 +++---
arch/x86/kernel/cpu/bus_lock.c | 20 ++++++++--
include/linux/interrupt.h | 16 ++------
kernel/locking/Makefile | 3 +-
kernel/locking/lock_events_list.h | 28 ++++++++++++++
kernel/locking/lockdep.c | 17 ++++++++-
kernel/locking/mutex.c | 2 +
kernel/locking/rtmutex.c | 29 +++++++++++---
mm/memory.c | 2 -
rust/helpers/helpers.c | 1 +
rust/helpers/sync.c | 13 +++++++
rust/kernel/sync.rs | 57 ++++++++++++++++++++++++++--
rust/kernel/sync/condvar.rs | 28 ++++++++++++--
rust/kernel/sync/lock.rs | 35 +++++++++++++++--
rust/kernel/sync/lock/global.rs | 5 ++-
rust/kernel/sync/poll.rs | 2 +-
rust/kernel/task.rs | 2 +
rust/kernel/workqueue.rs | 2 +-
24 files changed, 294 insertions(+), 109 deletions(-)
create mode 100644 rust/helpers/sync.c