From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A00323B83E1 for ; Mon, 17 Aug 2026 09:50:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786960206; cv=none; b=WtJn6dDAYJgveT9nRBwWZ0e5DRZXl7X3DGKx6gkiaLrqp7JXyxt3zf+V6tYbynOhmfgiddPCn1B0ubEsED44Fe9BVktpk/W0pI2r58MnD1zuZiWv6cfwXW9KXBfzwmKnwMfNlDsqee2kbr7bkPzxVOW9EAZTc+F1Tj2aq5SSVlw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786960206; c=relaxed/simple; bh=siR/7tosk4KpPdQBBKWzU0Xf9eg7u+Qcn9uSU27FwIQ=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=B24CR6ireoOPzmpScj2AC2n901+/RiQoTThjfofApYhIQoBFjWRlw7mNHix6MpGfhMEKNdPBMBtlo/8/Hid8ZZxsJLR0cM/NI85mMSIKXPUFKlD2LfUrC5DDI2182MtWyCNdjK94Yc7Zd9R2f2b9Ov1oio/LCTKNKKtBi1DS/QM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PGhJm239; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PGhJm239" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 539A31F000E9; Mon, 17 Aug 2026 09:50:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786960204; bh=qGNOseV8VVrYn7uQiq94nRCHmfkRCkzMM/QWE4NUgO4=; h=Date:From:To:Cc:Subject; b=PGhJm239PRuZ9316poFEP2Fh3BtqmClxzbU8cu0Q6sS4DS+WZlRCeO5b+Uoq0Pc4J QZtjWwkOpvMbZNydWeZ/rBgeQlciYsagGMqTsyiAluYtOIhAz6QtpOAwH4ruFjp90m 4movrKtu5NkPIh+MdUAz2m4f5bFYI5BJyteg14+qY6b/kSD4Xlzd7Xq9O5YfBJtbLw WmoXsdHqqsi7RB4XSEr21F3YlJwuPtVZsg/55/HUTtiTqTfdhNTUbwhjIDkf9yA2KH 2bZKEoGBhKsdXEdTi11WR562S8a82Et3igHAqLsxkqOdvEoI5Gh+JAvRPqVCIRW4Yu tLfUh1+eSoBpQ== Date: Mon, 17 Aug 2026 11:50:00 +0200 From: Ingo Molnar To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Thomas Gleixner , Will Deacon , Waiman Long , Boqun Feng Subject: [GIT PULL] locking updates for v7.3 Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Linus, Please pull the latest locking/core Git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2026-08-17 for you to fetch changes up to ec4fad7c2bdc80c62fa73f799b77ad299f73dcc3: Locking updates for v7.3: Futexes: - Use runtime constants for futex_hash computation (K Prateek Nayak, Peter Zijlstra) - Optimise the size check get_futex_key() (Sebastian Andrzej Siewior) - Avoid private hash use-after-free on final put (Felix Hoffmann) - Tell kmemleak we're not leaking __futex_queues (Peter Zijlstra) Rust integration updates: - Implement refcounted interrupt disable and SpinLockIrq for Rust (Boqun Feng, Heiko Carstens, Joel Fernandes, Lyude Paul) - Rust sync: add helpers for mb, dma_mb and friends; add generic memory barriers and use LKMM atomics instead of Rust atomics in the revocable code (Gary Guo) - Add abstraction and integrate synchronize_rcu() (Philipp Stanner) Lock debugging: - Add qspinlock contended_release tracepoint (Dmitry Ilvokhin, Peter Zijlstra) - Enable the printing of held locks of remote running tasks and print task CPU (Ingo Molnar) - percpu-rwsem: Annotate intentional data race in readers_active_check() (Sun Shaojie) Misc fixes and updates by Boqun Feng, Peter Zijlstra, Fangrui Song, Naveen Kumar Chaudhary and Thomas Huth. Thanks, Ingo ------------------> Boqun Feng (9): preempt: Introduce HARDIRQ_DISABLE_BITS preempt: Introduce __preempt_count_{sub,add}_return() irq,spin_lock: Add counted interrupt disabling/enabling locking: Switch to _irq_{disable,enable}() variants in cleanup guards sched: Remove the unused preempt_offset parameter of __cant_sleep() sched: Avoid signed comparison of preempt_count() in __cant_migrate() preempt: Introduce HAS_SEPARATE_PREEMPT_RESCHED_BITS arm64: sched/preempt: Enable HAS_SEPARATE_PREEMPT_RESCHED_BITS rust: helper: Add spin_{un,}lock_irq_{enable,disable}() helpers Dmitry Ilvokhin (4): locking: Factor out queued_spin_release() locking/qspinlock: Add contended_release tracepoint tracing/lock: Use TRACE_EVENT_FN() for contended_release x86/paravirt: Trace contended_release on unlock Fangrui Song (1): riscv/runtime-const: Disable linker relaxation for RUNTIME_MAGIC Felix Hoffmann (1): futex: Avoid private hash use-after-free on final put Gary Guo (3): rust: sync: Add helpers for mb, dma_mb and friends rust: sync: Add generic memory barriers rust: revocable: Use LKMM atomics instead of Rust atomics Heiko Carstens (1): s390/preempt: Enable HAS_SEPARATE_PREEMPT_RESCHED_BITS Ingo Molnar (1): lockdep: Enable the printing of held locks of remote running tasks and print task CPU Joel Fernandes (1): preempt: Track NMI nesting to separate per-CPU counter K Prateek Nayak (5): arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching arm64/runtime-const: Introduce runtime_const_mask_32() riscv/runtime-const: Replace open-coded placeholder with RUNTIME_MAGIC riscv/runtime-const: Introduce runtime_const_mask_32() s390/runtime-const: Introduce runtime_const_mask_32() Lyude Paul (6): openrisc: Include in smp.h irq: Add KUnit test for refcounted interrupt enable/disable rust: Introduce interrupt module rust: sync: Use super::* in spinlock.rs rust: sync: Add SpinLockIrq rust: sync: Introduce SpinLockIrq::lock_with() and friends Naveen Kumar Chaudhary (1): locking/lockdep: Fix NULL pointer dereference in __lock_set_class() Peter Zijlstra (5): x86/runtime-const: Introduce runtime_const_mask_32() asm-generic/runtime-const: Add dummy runtime_const_mask_32() futex: Use runtime constants for __futex_hash() hot path x86/paravirt: Use static_call() for the paravirt spinlock ops futex: Tell kmemleak we're not leaking __futex_queues Philipp Stanner (3): rust: sync: Add abstraction for synchronize_rcu() rust: revocable: Use safe synchronize_rcu() abstraction rust: sync: Use safe synchronize_rcu() abstraction in poll Sebastian Andrzej Siewior (1): futex: Optimise the size check get_futex_key() Sun Shaojie (1): locking/percpu-rwsem: Annotate intentional data race in readers_active_check() Thomas Huth (1): static_call / jump_label: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers arch/arm/include/asm/jump_label.h | 4 +- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/preempt.h | 20 ++ arch/arm64/include/asm/runtime-const.h | 63 ++++- arch/mips/include/asm/spinlock.h | 6 +- arch/openrisc/include/asm/smp.h | 2 + arch/riscv/include/asm/asm.h | 1 + arch/riscv/include/asm/runtime-const.h | 84 +++++-- arch/s390/Kconfig | 1 + arch/s390/include/asm/lowcore.h | 13 +- arch/s390/include/asm/preempt.h | 51 ++-- arch/s390/include/asm/runtime-const.h | 22 +- arch/x86/Kconfig | 1 + arch/x86/hyperv/hv_spinlock.c | 4 +- arch/x86/include/asm/cpufeatures.h | 2 +- arch/x86/include/asm/paravirt-spinlock.h | 21 +- arch/x86/include/asm/preempt.h | 61 +++-- arch/x86/include/asm/runtime-const.h | 14 ++ arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/kvm.c | 5 +- arch/x86/kernel/paravirt-spinlocks.c | 63 ++++- arch/x86/kernel/static_call.c | 27 ++ arch/x86/xen/spinlock.c | 5 +- include/asm-generic/preempt.h | 14 ++ include/asm-generic/qspinlock.h | 38 ++- include/asm-generic/runtime-const.h | 1 + include/asm-generic/vmlinux.lds.h | 5 +- include/linux/hardirq.h | 40 ++- include/linux/interrupt_rc.h | 82 ++++++ include/linux/jump_label.h | 10 +- include/linux/kernel.h | 4 +- include/linux/preempt.h | 44 +++- include/linux/spinlock.h | 49 ++-- include/linux/spinlock_api_smp.h | 41 +++ include/linux/spinlock_api_up.h | 15 ++ include/linux/spinlock_rt.h | 18 ++ include/linux/static_call_types.h | 4 +- include/trace/events/lock.h | 10 +- kernel/Kconfig.locks | 20 ++ kernel/Kconfig.preempt | 4 + kernel/futex/core.c | 58 +++-- kernel/irq/Makefile | 1 + kernel/irq/refcount_interrupt_test.c | 109 ++++++++ kernel/locking/lockdep.c | 36 ++- kernel/locking/mutex.c | 4 + kernel/locking/percpu-rwsem.c | 2 +- kernel/locking/qspinlock.c | 22 ++ kernel/locking/spinlock.c | 31 +++ kernel/sched/core.c | 18 +- kernel/sched/fair.c | 12 +- kernel/softirq.c | 36 ++- lib/locking-selftest.c | 2 +- rust/helpers/barrier.c | 30 +++ rust/helpers/helpers.c | 1 + rust/helpers/interrupt.c | 13 + rust/helpers/spinlock.c | 15 ++ rust/helpers/sync.c | 5 + rust/kernel/interrupt.rs | 89 +++++++ rust/kernel/lib.rs | 1 + rust/kernel/revocable.rs | 28 ++- rust/kernel/sync.rs | 9 +- rust/kernel/sync/atomic/ordering.rs | 2 +- rust/kernel/sync/barrier.rs | 127 +++++++--- rust/kernel/sync/lock/global.rs | 3 + rust/kernel/sync/lock/spinlock.rs | 329 ++++++++++++++++++++++++- rust/kernel/sync/poll.rs | 10 +- rust/kernel/sync/rcu.rs | 16 ++ tools/arch/x86/include/asm/cpufeatures.h | 2 +- tools/include/linux/static_call_types.h | 4 +- tools/testing/selftests/bpf/bpf_experimental.h | 7 +- 70 files changed, 1653 insertions(+), 241 deletions(-) create mode 100644 include/linux/interrupt_rc.h create mode 100644 kernel/irq/refcount_interrupt_test.c create mode 100644 rust/helpers/interrupt.c create mode 100644 rust/kernel/interrupt.rs