virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] guard virt_spin_lock() with a static key
@ 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
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Juergen Gross @ 2017-09-06 17:36 UTC (permalink / raw)
  To: linux-kernel, xen-devel, x86, virtualization
  Cc: Juergen Gross, jeremy, peterz, chrisw, mingo, tglx, hpa, longman,
	akataria, boris.ostrovsky

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] 6+ messages in thread

end of thread, other threads:[~2017-10-02 14:19 UTC | newest]

Thread overview: 6+ 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 ` [PATCH v3 1/2] paravirt/locks: use new static key for controlling call of virt_spin_lock() Juergen Gross
2017-09-06 17:36 ` [PATCH v3 2/2] paravirt,xen: correct xen_nopvspin case Juergen Gross
2017-09-25 13:59 ` [PATCH v3 0/2] guard virt_spin_lock() with a static key Juergen Gross
     [not found] ` <780c50a0-160b-24e3-a5b2-6685953882e5@suse.com>
2017-09-25 14:44   ` Waiman Long
2017-10-02 14:19 ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).