[GIT PULL] locking changes for v6.13

From: Ingo Molnar
Date: Mon Nov 18 2024 - 04:03:56 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-2024-11-18

# HEAD: 3b49a347d751553b1d1be69c8619ae2e85fdc28d locking/Documentation: Fix grammar in percpu-rw-semaphore.rst

Locking changes for v6.13 are:

- lockdep:
- Enable PROVE_RAW_LOCK_NESTING with PROVE_LOCKING (Sebastian Andrzej Siewior)
- Add lockdep_cleanup_dead_cpu() (David Woodhouse)

- futexes:
- Use atomic64_inc_return() in get_inode_sequence_number() (Uros Bizjak)
- Use atomic64_try_cmpxchg_relaxed() in get_inode_sequence_number() (Uros Bizjak)

- RT locking:
- Add sparse annotation PREEMPT_RT's locking (Sebastian Andrzej Siewior)

- spinlocks:
- Use atomic_try_cmpxchg_release() in osq_unlock() (Uros Bizjak)

- atomics:
- x86: Use ALT_OUTPUT_SP() for __alternative_atomic64() (Uros Bizjak)
- x86: Use ALT_OUTPUT_SP() for __arch_{,try_}cmpxchg64_emu() (Uros Bizjak)

- KCSAN, seqlocks:
- Support seqcount_latch_t (Marco Elver)

- <linux/cleanup.h>:
- Add if_not_cond_guard() conditional guard helper (David Lechner)
- Adjust scoped_guard() macros to avoid potential warning (Przemek Kitszel)
- Remove address space of returned pointer (Uros Bizjak)

- WW mutexes:
- locking/ww_mutex: Adjust to lockdep nest_lock requirements (Thomas Hellström)

- Rust integration:
- Fix raw_spin_lock initialization on PREEMPT_RT (Eder Zulian)

- miscellaneous cleanups & fixes:
- lockdep: Fix wait-type check related warnings (Ahmed Ehab)
- lockdep: Use info level for initial info messages (Jiri Slaby)
- spinlocks: Make __raw_* lock ops static (Geert Uytterhoeven)
- pvqspinlock: Convert fields of 'enum vcpu_state' to uppercase (Qiuxu Zhuo)
- iio: magnetometer: Fix if () scoped_guard() formatting (Stephen Rothwell)
- rtmutex: Fix misleading comment (Peter Zijlstra)
- percpu-rw-semaphores: Fix grammar in percpu-rw-semaphore.rst (Xiu Jianfeng)

Thanks,

Ingo

------------------>
Ahmed Ehab (2):
locking/lockdep: Avoid creating new name string literals in lockdep_set_subclass()
locking/lockdep: Add a test for lockdep_set_subclass()

David Lechner (1):
cleanup: Add conditional guard helper

David Woodhouse (1):
lockdep: Add lockdep_cleanup_dead_cpu()

Eder Zulian (1):
rust: helpers: Avoid raw_spin_lock initialization for PREEMPT_RT

Geert Uytterhoeven (1):
locking/spinlocks: Make __raw_* lock ops static

Jiri Slaby (SUSE) (1):
lockdep: Use info level for lockdep initial info messages

Marco Elver (5):
time/sched_clock: Swap update_clock_read_data() latch writes
time/sched_clock: Broaden sched_clock()'s instrumentation coverage
kcsan, seqlock: Support seqcount_latch_t
seqlock, treewide: Switch to non-raw seqcount_latch interface
kcsan, seqlock: Fix incorrect assumption in read_seqbegin()

Peter Zijlstra (1):
locking/rtmutex: Fix misleading comment

Przemek Kitszel (1):
cleanup: Adjust scoped_guard() macros to avoid potential warning

Qiuxu Zhuo (1):
locking/pvqspinlock: Convert fields of 'enum vcpu_state' to uppercase

Sebastian Andrzej Siewior (5):
lockdep: Enable PROVE_RAW_LOCK_NESTING with PROVE_LOCKING.
locking/rt: Add sparse annotation PREEMPT_RT's sleeping locks.
locking/rt: Remove one __cond_lock() in RT's spin_trylock_irqsave()
locking/rt: Add sparse annotation for RCU.
locking/rt: Annotate unlock followed by lock for sparse.

Stephen Rothwell (1):
iio: magnetometer: fix if () scoped_guard() formatting

Thomas Hellström (1):
locking/ww_mutex: Adjust to lockdep nest_lock requirements

Uros Bizjak (6):
futex: Use atomic64_inc_return() in get_inode_sequence_number()
futex: Use atomic64_try_cmpxchg_relaxed() in get_inode_sequence_number()
cleanup: Remove address space of returned pointer
locking/osq_lock: Use atomic_try_cmpxchg_release() in osq_unlock()
locking/atomic/x86: Use ALT_OUTPUT_SP() for __alternative_atomic64()
locking/atomic/x86: Use ALT_OUTPUT_SP() for __arch_{,try_}cmpxchg64_emu()

Xiu Jianfeng (1):
locking/Documentation: Fix grammar in percpu-rw-semaphore.rst


Documentation/locking/percpu-rw-semaphore.rst | 4 +-
Documentation/locking/seqlock.rst | 2 +-
arch/x86/include/asm/atomic64_32.h | 3 +-
arch/x86/include/asm/cmpxchg_32.h | 6 +-
arch/x86/kernel/tsc.c | 5 +-
drivers/iio/magnetometer/af8133j.c | 3 +-
include/linux/cleanup.h | 69 ++++++++++++++++---
include/linux/irqflags.h | 6 ++
include/linux/lockdep.h | 2 +-
include/linux/rbtree_latch.h | 20 +++---
include/linux/rwlock_rt.h | 10 +--
include/linux/seqlock.h | 98 ++++++++++++++++++++-------
include/linux/spinlock_rt.h | 28 ++++----
include/linux/ww_mutex.h | 14 ++++
kernel/cpu.c | 1 +
kernel/futex/core.c | 6 +-
kernel/locking/lockdep.c | 46 ++++++++++---
kernel/locking/osq_lock.c | 3 +-
kernel/locking/qspinlock_paravirt.h | 36 +++++-----
kernel/locking/rtmutex.c | 2 +
kernel/locking/rtmutex_api.c | 8 +--
kernel/locking/spinlock.c | 8 +--
kernel/locking/spinlock_rt.c | 14 ++--
kernel/locking/test-ww_mutex.c | 8 ++-
kernel/printk/printk.c | 9 +--
kernel/time/sched_clock.c | 34 +++++++---
kernel/time/timekeeping.c | 12 ++--
lib/Kconfig.debug | 12 +---
lib/locking-selftest.c | 39 +++++++++++
rust/helpers/spinlock.c | 8 ++-
30 files changed, 355 insertions(+), 161 deletions(-)