[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170906173625.18158-1-jgross@suse.com>
Date: Wed, 6 Sep 2017 19:36:23 +0200
From: Juergen Gross <jgross@...e.com>
To: linux-kernel@...r.kernel.org, xen-devel@...ts.xenproject.org,
x86@...nel.org, virtualization@...ts.linux-foundation.org
Cc: jeremy@...p.org, chrisw@...s-sol.org, akataria@...are.com,
rusty@...tcorp.com.au, boris.ostrovsky@...cle.com, hpa@...or.com,
tglx@...utronix.de, mingo@...hat.com, peterz@...radead.org,
longman@...hat.com, Juergen Gross <jgross@...e.com>
Subject: [PATCH v3 0/2] guard virt_spin_lock() with a static key
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
Powered by blists - more mailing lists