On Wed, 23 Oct 2019 at 19:20, Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx> wrote: > > This reverts commit 34226b6b70980a8f81fff3c09a2c889f77edeeff. > > Commit 8990cac6e5ea ("x86/jump_label: Initialize static branching > early") adds jump_label_init() call in setup_arch() to make static > keys initialized early, so we could use the original simpler code > again. > > The similar change for XEN is in commit 090d54bcbc54 ("Revert > "x86/paravirt: Set up the virt_spin_lock_key after static keys get > initialized"") > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx> > Reviewed-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Radim Krcmar <rkrcmar@xxxxxxxxxx> > Cc: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > Cc: Wanpeng Li <wanpengli@xxxxxxxxxxx> > Cc: Jim Mattson <jmattson@xxxxxxxxxx> > Cc: Joerg Roedel <joro@xxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Borislav Petkov <bp@xxxxxxxxx> > Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Reviewed-by: Wanpeng Li <wanpengli@xxxxxxxxxxx> > --- > arch/x86/kernel/kvm.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c > index e820568..3bc6a266 100644 > --- a/arch/x86/kernel/kvm.c > +++ b/arch/x86/kernel/kvm.c > @@ -527,13 +527,6 @@ static void kvm_smp_send_call_func_ipi(const struct cpumask *mask) > } > } > > -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)) > - static_branch_disable(&virt_spin_lock_key); > -} > - > static void __init kvm_smp_prepare_boot_cpu(void) > { > /* > @@ -633,7 +626,6 @@ static void __init kvm_guest_init(void) > apic_set_eoi_write(kvm_guest_apic_eoi_write); > > #ifdef CONFIG_SMP > - smp_ops.smp_prepare_cpus = kvm_smp_prepare_cpus; > smp_ops.smp_prepare_boot_cpu = kvm_smp_prepare_boot_cpu; > if (kvm_para_has_feature(KVM_FEATURE_PV_SCHED_YIELD) && > !kvm_para_has_hint(KVM_HINTS_REALTIME) && > @@ -835,8 +827,10 @@ void __init kvm_spinlock_init(void) > if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) > return; > > - if (kvm_para_has_hint(KVM_HINTS_REALTIME)) > + if (kvm_para_has_hint(KVM_HINTS_REALTIME)) { > + static_branch_disable(&virt_spin_lock_key); > return; > + } > > /* Don't use the pvqspinlock code if there is only 1 vCPU. */ > if (num_possible_cpus() == 1) > -- > 1.8.3.1 >