KVM: x86: Migrate the PIT only if vcpu0 is migrated, not any BSP
Make vcpu0 the arbitrary owner of the PIT, as was intended when PIT migration was added by commit2f5997140f
("KVM: migrate PIT timer"). The PIT was unintentionally turned into being owned by the BSP by commitc5af89b68a
("KVM: Introduce kvm_vcpu_is_bsp() function."), and was then unintentionally converted to a shared ownership model when kvm_vcpu_is_bsp() was modified to check the APIC base MSR instead of hardcoding vcpu0 as the BSP. Functionally, this just means the PIT's hrtimer is migrated less often. The real motivation is to remove the usage of kvm_vcpu_is_bsp(), so that more legacy/broken crud can be removed in a future patch. Fixes:58d269d8cc
("KVM: x86: BSP in MSR_IA32_APICBASE is writable") Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20210713163324.627647-14-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
549240e8e0
commit
0214f6bbe5
@ -220,7 +220,8 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu)
|
||||
struct kvm_pit *pit = vcpu->kvm->arch.vpit;
|
||||
struct hrtimer *timer;
|
||||
|
||||
if (!kvm_vcpu_is_bsp(vcpu) || !pit)
|
||||
/* Somewhat arbitrarily make vcpu0 the owner of the PIT. */
|
||||
if (vcpu->vcpu_id || !pit)
|
||||
return;
|
||||
|
||||
timer = &pit->pit_state.timer;
|
||||
|
Loading…
Reference in New Issue
Block a user