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

Commit 953899b6 authored by Joerg Roedel's avatar Joerg Roedel Committed by Marcelo Tosatti
Browse files

KVM: SVM: Adjust tsc_offset only if tsc_unstable



The tsc_offset adjustment in svm_vcpu_load is executed
unconditionally even if Linux considers the host tsc as
stable. This causes a Linux guest detecting an unstable tsc
in any case.
This patch removes the tsc_offset adjustment if the host tsc
is stable. The guest will now get the benefit of a stable
tsc too.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 4e47c7a6
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -765,6 +765,7 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
	if (unlikely(cpu != vcpu->cpu)) {
		u64 delta;

		if (check_tsc_unstable()) {
			/*
			 * Make sure that the guest sees a monotonically
			 * increasing TSC.
@@ -773,6 +774,7 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
			svm->vmcb->control.tsc_offset += delta;
			if (is_nested(svm))
				svm->nested.hsave->control.tsc_offset += delta;
		}
		vcpu->cpu = cpu;
		kvm_migrate_timers(vcpu);
		svm->asid_generation = 0;