• Linus Torvalds's avatar
    Merge tag 'locking-core-2023-10-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3cf3fabc
    Linus Torvalds authored
    Pull locking updates from Info Molnar:
     "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"
    
    * tag 'locking-core-2023-10-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
      futex: Don't include process MM in futex key on no-MMU
      locking/seqlock: Fix grammar in comment
      alpha: Fix up new futex syscall numbers
      locking/seqlock: Propagate 'const' pointers within read-only methods, remove forced type casts
      locking/lockdep: Fix string sizing bug that triggers a format-truncation compiler-warning
      locking/seqlock: Change __seqprop() to return the function pointer
      locking/seqlock: Simplify SEQCOUNT_LOCKNAME()
      locking/atomics: Use atomic_try_cmpxchg_release() to micro-optimize rcuref_put_slowpath()
      locking/atomic, xen: Use sync_try_cmpxchg() instead of sync_cmpxchg()
      locking/atomic/x86: Introduce arch_sync_try_cmpxchg()
      locking/atomic: Add generic support for sync_try_cmpxchg() and its fallback
      locking/seqlock: Fix typo in comment
      futex/requeue: Remove unnecessary ‘NULL’ initialization from futex_proxy_trylock_atomic()
      locking/local, arch: Rewrite local_add_unless() as a static inline function
      locking/debug: Fix debugfs API return value checks to use IS_ERR()
      locking/ww_mutex/test: Make sure we bail out instead of livelock
      locking/ww_mutex/test: Fix potential workqueue corruption
      locking/ww_mutex/test: Use prng instead of rng to avoid hangs at bootup
      futex: Add sys_futex_requeue()
      futex: Add flags2 argument to futex_requeue()
      ...
    3cf3fabc
Kconfig 97.3 KB