[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZTzwTaf1iTnCHwJM@gmail.com>
Date: Sat, 28 Oct 2023 13:28:13 +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>,
Thomas Gleixner <tglx@...utronix.de>,
Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>,
Boqun Feng <boqun.feng@...il.com>,
Borislav Petkov <bp@...en8.de>
Subject: [GIT PULL] locking changes for v6.7
Linus,
Please pull the latest locking tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2023-10-28
# HEAD: c73801ae4f22b390228ebf471d55668e824198b6 futex: Don't include process MM in futex key on no-MMU
Locking changes in this cycle are:
- Futex improvements:
- Add the 'futex2' syscall ABI, which is an attempt to get away from the
multiplex syscall and adds a little room for extentions, while lifting
some limitations.
- Fix futex PI recursive rt_mutex waiter state bug
- Fix inter-process shared futexes on no-MMU systems
- Use folios instead of pages
- Micro-optimizations of locking primitives:
- Improve arch_spin_value_unlocked() on asm-generic ticket spinlock
architectures, to improve lockref code generation.
- Improve the x86-32 lockref_get_not_zero() main loop by adding
build-time CMPXCHG8B support detection for the relevant lockref code,
and by better interfacing the CMPXCHG8B assembly code with the compiler.
- Introduce arch_sync_try_cmpxchg() on x86 to improve sync_try_cmpxchg()
code generation. Convert some sync_cmpxchg() users to sync_try_cmpxchg().
- Micro-optimize rcuref_put_slowpath()
- Locking debuggability improvements:
- Improve CONFIG_DEBUG_RT_MUTEXES=y to have a fast-path as well
- Enforce atomicity of sched_submit_work(), which is de-facto atomic but
was un-enforced previously.
- Extend <linux/cleanup.h>'s no_free_ptr() with __must_check semantics
- Fix ww_mutex self-tests
- Clean up const-propagation in <linux/seqlock.h> and simplify
the API-instantiation macros a bit.
- RT locking improvements:
- Provide the rt_mutex_*_schedule() primitives/helpers and use them
in the rtmutex code to avoid recursion vs. rtlock on the PI state.
- Add nested blocking lockdep asserts to rt_mutex_lock(), rtlock_lock()
and rwbase_read_lock().
- Plus misc fixes & cleanups
Thanks,
Ingo
------------------>
Atul Kumar Pant (1):
locking/debug: Fix debugfs API return value checks to use IS_ERR()
Ben Wolsieffer (1):
futex: Don't include process MM in futex key on no-MMU
Cuda-Chen (1):
locking/seqlock: Fix grammar in comment
Guo Ren (1):
asm-generic: ticket-lock: Optimize arch_spin_value_unlocked()
Ingo Molnar (1):
locking/seqlock: Propagate 'const' pointers within read-only methods, remove forced type casts
John Stultz (3):
locking/ww_mutex/test: Use prng instead of rng to avoid hangs at bootup
locking/ww_mutex/test: Fix potential workqueue corruption
locking/ww_mutex/test: Make sure we bail out instead of livelock
Li zeming (1):
futex/requeue: Remove unnecessary ‘NULL’ initialization from futex_proxy_trylock_atomic()
Lucy Mielke (1):
locking/lockdep: Fix string sizing bug that triggers a format-truncation compiler-warning
Matthew Wilcox (Oracle) (1):
futex: Use a folio instead of a page
Oleg Nesterov (2):
locking/seqlock: Simplify SEQCOUNT_LOCKNAME()
locking/seqlock: Change __seqprop() to return the function pointer
Peter Zijlstra (5):
cleanup: Make no_free_ptr() __must_check
sched: Constrain locks in sched_submit_work()
sched: Provide rt_mutex specific scheduler helpers
futex/pi: Fix recursive rt_mutex waiter state
alpha: Fix up new futex syscall numbers
Sebastian Andrzej Siewior (2):
locking/rtmutex: Avoid unconditional slowpath for DEBUG_RT_MUTEXES
locking/rtmutex: Use rt_mutex specific scheduler helpers
Thomas Gleixner (2):
sched: Extract __schedule_loop()
locking/rtmutex: Add a lockdep assert to catch potential nested blocking
Uros Bizjak (6):
locking/lockref/x86: Enable ARCH_USE_CMPXCHG_LOCKREF for X86_CMPXCHG64
locking/local, arch: Rewrite local_add_unless() as a static inline function
locking/atomic: Add generic support for sync_try_cmpxchg() and its fallback
locking/atomic/x86: Introduce arch_sync_try_cmpxchg()
locking/atomic, xen: Use sync_try_cmpxchg() instead of sync_cmpxchg()
locking/atomics: Use atomic_try_cmpxchg_release() to micro-optimize rcuref_put_slowpath()
pangzizhen001@...suo.com (1):
locking/seqlock: Fix typo in comment
peterz@...radead.org (10):
futex: Clarify FUTEX2 flags
futex: Extend the FUTEX2 flags
futex: Flag conversion
futex: Validate futex value against futex size
futex: Add sys_futex_wake()
futex: FLAGS_STRICT
futex: Add sys_futex_wait()
futex: Propagate flags into get_futex_key()
futex: Add flags2 argument to futex_requeue()
futex: Add sys_futex_requeue()
arch/alpha/include/asm/local.h | 33 ++---
arch/alpha/kernel/syscalls/syscall.tbl | 4 +
arch/arm/tools/syscall.tbl | 3 +
arch/arm64/include/asm/unistd.h | 2 +-
arch/arm64/include/asm/unistd32.h | 6 +
arch/ia64/kernel/syscalls/syscall.tbl | 3 +
arch/loongarch/include/asm/local.h | 27 ++--
arch/m68k/kernel/syscalls/syscall.tbl | 3 +
arch/microblaze/kernel/syscalls/syscall.tbl | 3 +
arch/mips/include/asm/local.h | 27 ++--
arch/mips/kernel/syscalls/syscall_n32.tbl | 3 +
arch/mips/kernel/syscalls/syscall_n64.tbl | 3 +
arch/mips/kernel/syscalls/syscall_o32.tbl | 3 +
arch/parisc/kernel/syscalls/syscall.tbl | 3 +
arch/powerpc/include/asm/local.h | 12 +-
arch/powerpc/kernel/syscalls/syscall.tbl | 3 +
arch/s390/kernel/syscalls/syscall.tbl | 3 +
arch/sh/kernel/syscalls/syscall.tbl | 3 +
arch/sparc/kernel/syscalls/syscall.tbl | 3 +
arch/x86/Kconfig | 2 +-
arch/x86/entry/syscalls/syscall_32.tbl | 3 +
arch/x86/entry/syscalls/syscall_64.tbl | 3 +
arch/x86/include/asm/cmpxchg.h | 6 +
arch/x86/include/asm/local.h | 33 ++---
arch/xtensa/kernel/syscalls/syscall.tbl | 3 +
drivers/xen/events/events_fifo.c | 26 ++--
drivers/xen/grant-table.c | 10 +-
include/asm-generic/spinlock.h | 16 +-
include/linux/atomic/atomic-arch-fallback.h | 15 +-
include/linux/atomic/atomic-instrumented.h | 10 +-
include/linux/cleanup.h | 39 ++++-
include/linux/sched.h | 3 +
include/linux/sched/rt.h | 4 +
include/linux/seqlock.h | 52 ++++---
include/linux/syscalls.h | 10 ++
include/uapi/asm-generic/unistd.h | 8 +-
include/uapi/linux/futex.h | 31 +++-
kernel/futex/core.c | 86 ++++++-----
kernel/futex/futex.h | 86 ++++++++++-
kernel/futex/pi.c | 91 ++++++++----
kernel/futex/requeue.c | 22 +--
kernel/futex/syscalls.c | 221 ++++++++++++++++++++++------
kernel/futex/waitwake.c | 80 +++++-----
kernel/locking/lock_events.c | 10 +-
kernel/locking/lockdep_proc.c | 2 +-
kernel/locking/rtmutex.c | 37 ++++-
kernel/locking/rwbase_rt.c | 8 +
kernel/locking/rwsem.c | 8 +-
kernel/locking/spinlock_rt.c | 6 +
kernel/locking/test-ww_mutex.c | 48 ++++--
kernel/locking/ww_rt_mutex.c | 2 +-
kernel/sched/core.c | 64 ++++++--
kernel/sys_ni.c | 3 +
lib/rcuref.c | 2 +-
scripts/atomic/gen-atomic-fallback.sh | 33 +++--
scripts/atomic/gen-atomic-instrumented.sh | 3 +-
56 files changed, 895 insertions(+), 338 deletions(-)
Powered by blists - more mailing lists