• Linus Torvalds's avatar
    Merge tag 'locking-core-2021-10-31' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 595b28fb
    Linus Torvalds authored
    Pull locking updates from Thomas Gleixner:
    
     - Move futex code into kernel/futex/ and split up the kitchen sink into
       seperate files to make integration of sys_futex_waitv() simpler.
    
     - Add a new sys_futex_waitv() syscall which allows to wait on multiple
       futexes.
    
       The main use case is emulating Windows' WaitForMultipleObjects which
       allows Wine to improve the performance of Windows Games. Also native
       Linux games can benefit from this interface as this is a common wait
       pattern for this kind of applications.
    
     - Add context to ww_mutex_trylock() to provide a path for i915 to
       rework their eviction code step by step without making lockdep upset
       until the final steps of rework are completed. It's also useful for
       regulator and TTM to avoid dropping locks in the non contended path.
    
     - Lockdep and might_sleep() cleanups and improvements
    
     - A few improvements for the RT substitutions.
    
     - The usual small improvements and cleanups.
    
    * tag 'locking-core-2021-10-31' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
      locking: Remove spin_lock_flags() etc
      locking/rwsem: Fix comments about reader optimistic lock stealing conditions
      locking: Remove rcu_read_{,un}lock() for preempt_{dis,en}able()
      locking/rwsem: Disable preemption for spinning region
      docs: futex: Fix kernel-doc references
      futex: Fix PREEMPT_RT build
      futex2: Documentation: Document sys_futex_waitv() uAPI
      selftests: futex: Test sys_futex_waitv() wouldblock
      selftests: futex: Test sys_futex_waitv() timeout
      selftests: futex: Add sys_futex_waitv() test
      futex,arm: Wire up sys_futex_waitv()
      futex,x86: Wire up sys_futex_waitv()
      futex: Implement sys_futex_waitv()
      futex: Simplify double_lock_hb()
      futex: Split out wait/wake
      futex: Split out requeue
      futex: Rename mark_wake_futex()
      futex: Rename: match_futex()
      futex: Rename: hb_waiter_{inc,dec,pending}()
      futex: Split out PI futex
      ...
    595b28fb
sched.h 65.2 KB