All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] guard virt_spin_lock() with a static key
@ 2017-09-06 17:36 ` Juergen Gross
  0 siblings, 0 replies; 19+ messages in thread
From: Juergen Gross @ 2017-09-06 17:36 UTC (permalink / raw)
  To: linux-kernel, xen-devel, x86, virtualization
  Cc: jeremy, chrisw, akataria, rusty, boris.ostrovsky, hpa, tglx,
	mingo, peterz, longman, Juergen Gross

With virt_spin_lock() being guarded by a static key the bare metal case
can be optimized by patching the call away completely. In case a kernel
running as a guest it can decide whether to use paravitualized
spinlocks, the current fallback to the unfair test-and-set scheme, or
to mimic the bare metal behavior.

V3:
- remove test for hypervisor environment from virt_spin_lock(9 as
  suggested by Waiman Long

V2:
- use static key instead of making virt_spin_lock() a pvops function

Juergen Gross (2):
  paravirt/locks: use new static key for controlling call of
    virt_spin_lock()
  paravirt,xen: correct xen_nopvspin case

 arch/x86/include/asm/qspinlock.h     | 11 ++++++++++-
 arch/x86/kernel/paravirt-spinlocks.c |  6 ++++++
 arch/x86/kernel/smpboot.c            |  2 ++
 arch/x86/xen/spinlock.c              |  2 ++
 kernel/locking/qspinlock.c           |  4 ++++
 5 files changed, 24 insertions(+), 1 deletion(-)

-- 
2.12.3

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-10-10 11:07 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-06 17:36 [PATCH v3 0/2] guard virt_spin_lock() with a static key Juergen Gross
2017-09-06 17:36 ` Juergen Gross
2017-09-06 17:36 ` [PATCH v3 1/2] paravirt/locks: use new static key for controlling call of virt_spin_lock() Juergen Gross
2017-09-06 17:36 ` Juergen Gross
2017-09-06 17:36 ` Juergen Gross
2017-10-10 11:03   ` [tip:locking/core] locking/paravirt: Use " tip-bot for Juergen Gross
2017-09-06 17:36 ` [PATCH v3 2/2] paravirt, xen: correct xen_nopvspin case Juergen Gross
2017-09-06 17:36 ` [PATCH v3 2/2] paravirt,xen: " Juergen Gross
2017-09-06 17:36   ` Juergen Gross
2017-10-10 11:03   ` [tip:locking/core] locking/spinlocks, paravirt, xen: Correct the " tip-bot for Juergen Gross
2017-09-25 13:59 ` [PATCH v3 0/2] guard virt_spin_lock() with a static key Juergen Gross
2017-09-25 13:59 ` Juergen Gross
2017-09-25 14:44   ` Waiman Long
2017-09-25 14:44   ` Waiman Long
2017-09-25 14:44   ` Waiman Long
2017-09-25 13:59 ` Juergen Gross
2017-10-02 14:19 ` Peter Zijlstra
2017-10-02 14:19 ` Peter Zijlstra
2017-10-02 14:19   ` Peter Zijlstra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.