mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
KVM: x86: Move TSC reset out of vmcb_init
commit 47008cd887 upstream.
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: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
60977a7ab5
commit
69b54926aa
@@ -621,7 +621,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);
|
||||
@@ -754,6 +753,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();
|
||||
|
||||
fx_init(&svm->vcpu);
|
||||
svm->vcpu.fpu_active = 1;
|
||||
|
||||
Reference in New Issue
Block a user