• Linus Torvalds's avatar
    Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6cdf89b1
    Linus Torvalds authored
    Pull locking updates from Ingo Molnar:
     "The tree got pretty big in this development cycle, but the net effect
      is pretty good:
    
        115 files changed, 673 insertions(+), 1522 deletions(-)
    
      The main changes were:
    
       - Rework and generalize the mutex code to remove per arch mutex
         primitives. (Peter Zijlstra)
    
       - Add vCPU preemption support: add an interface to query the
         preemption status of vCPUs and use it in locking primitives - this
         optimizes paravirt performance. (Pan Xinhui, Juergen Gross,
         Christian Borntraeger)
    
       - Introduce cpu_relax_yield() and remov cpu_relax_lowlatency() to
         clean up and improve the s390 lock yielding machinery and its core
         kernel impact. (Christian Borntraeger)
    
       - Micro-optimize mutexes some more. (Waiman Long)
    
       - Reluctantly add the to-be-deprecated mutex_trylock_recursive()
         interface on a temporary basis, to give the DRM code more time to
         get rid of its locking hacks. Any other users will be NAK-ed on
         sight. (We turned off the deprecation warning for the time being to
         not pollute the build log.) (Peter Zijlstra)
    
       - Improve the rtmutex code a bit, in light of recent long lived
         bugs/races. (Thomas Gleixner)
    
       - Misc fixes, cleanups"
    
    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
      x86/paravirt: Fix bool return type for PVOP_CALL()
      x86/paravirt: Fix native_patch()
      locking/ww_mutex: Use relaxed atomics
      locking/rtmutex: Explain locking rules for rt_mutex_proxy_unlock()/init_proxy_locked()
      locking/rtmutex: Get rid of RT_MUTEX_OWNER_MASKALL
      x86/paravirt: Optimize native pv_lock_ops.vcpu_is_preempted()
      locking/mutex: Break out of expensive busy-loop on {mutex,rwsem}_spin_on_owner() when owner vCPU is preempted
      locking/osq: Break out of spin-wait busy waiting loop for a preempted vCPU in osq_lock()
      Documentation/virtual/kvm: Support the vCPU preemption check
      x86/xen: Support the vCPU preemption check
      x86/kvm: Support the vCPU preemption check
      x86/kvm: Support the vCPU preemption check
      kvm: Introduce kvm_write_guest_offset_cached()
      locking/core, x86/paravirt: Implement vcpu_is_preempted(cpu) for KVM and Xen guests
      locking/spinlocks, s390: Implement vcpu_is_preempted(cpu)
      locking/core, powerpc: Implement vcpu_is_preempted(cpu)
      sched/core: Introduce the vcpu_is_preempted(cpu) interface
      sched/wake_q: Rename WAKE_Q to DEFINE_WAKE_Q
      locking/core: Provide common cpu_relax_yield() definition
      locking/mutex: Don't mark mutex_trylock_recursive() as deprecated, temporarily
      ...
    6cdf89b1
dev.c 209 KB