[PATCH v2 0/2] guard virt_spin_lock() with a static key

From: Juergen Gross
Date: Wed Sep 06 2017 - 11:30:07 EST


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.

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, 25 insertions(+)

--
2.12.3