Re: [Xen-devel] [PATCH v3 0/2] guard virt_spin_lock() with a static key
On Wed, Sep 06, 2017 at 07:36:23PM +0200, Juergen Gross wrote: > 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(-) Sorry for the delay, picked it up now. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v3 0/2] guard virt_spin_lock() with a static key
On 09/25/2017 09:59 AM, Juergen Gross wrote: > Ping? > > On 06/09/17 19:36, Juergen Gross wrote: >> 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(-) >> Acked-by: Waiman Long ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v3 0/2] guard virt_spin_lock() with a static key
Ping? On 06/09/17 19:36, Juergen Gross wrote: > 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(-) > ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [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 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel