Messages in this thread Patch in this message | | | Date | Thu, 19 Jul 2018 14:54:56 -0700 | From | Davidlohr Bueso <> | Subject | Re: [PATCH v2] xen/spinlock: Don't use pvqspinlock if only 1 vCPU |
| |
On Thu, 19 Jul 2018, Waiman Long wrote:
>On a VM with only 1 vCPU, the locking fast paths will always be >successful. In this case, there is no need to use the the PV qspinlock >code which has higher overhead on the unlock side than the native >qspinlock code. > >The xen_pvspin veriable is also turned off in this 1 vCPU case to >eliminate unneeded pvqspinlock initialization in xen_init_lock_cpu() >which is run after xen_init_spinlocks().
Wouldn't kvm also want this?
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index a37bda38d205..95aceb692010 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -457,7 +457,8 @@ static void __init sev_map_percpu_data(void) static void __init kvm_smp_prepare_cpus(unsigned int max_cpus) { native_smp_prepare_cpus(max_cpus); - if (kvm_para_has_hint(KVM_HINTS_REALTIME)) + if (num_possible_cpus() == 1 || + kvm_para_has_hint(KVM_HINTS_REALTIME)) static_branch_disable(&virt_spin_lock_key); }
| |