Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47008cd8 authored by Zachary Amsden's avatar Zachary Amsden Committed by Avi Kivity
Browse files

KVM: x86: Move TSC reset out of vmcb_init



The VMCB is reset whenever we receive a startup IPI, so Linux is setting
TSC back to zero happens very late in the boot process and destabilizing
the TSC.  Instead, just set TSC to zero once at VCPU creation time.

Why the separate patch?  So git-bisect is your friend.

Signed-off-by: default avatarZachary Amsden <zamsden@redhat.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 58877679
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -766,7 +766,6 @@ static void init_vmcb(struct vcpu_svm *svm)

	control->iopm_base_pa = iopm_base;
	control->msrpm_base_pa = __pa(svm->msrpm);
	control->tsc_offset = 0-native_read_tsc();
	control->int_ctl = V_INTR_MASKING_MASK;

	init_seg(&save->es);
@@ -902,6 +901,7 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
	svm->vmcb_pa = page_to_pfn(page) << PAGE_SHIFT;
	svm->asid_generation = 0;
	init_vmcb(svm);
	svm->vmcb->control.tsc_offset = 0-native_read_tsc();

	err = fx_init(&svm->vcpu);
	if (err)