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

Waiman Long
2017-09-25T14:44:42Z

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 <longman at redhat.com>