summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2025-02-01 04:38:26 +0300
committerSean Christopherson <seanjc@google.com>2025-02-12 21:45:55 +0300
commit847d68abf10c7dc930551318ea41ec96144b8fd6 (patch)
tree4c7da9a3f075fd4529125818d35c568773d2da9b
parent39d61b46adfd784f601534a6d488697bf53f2633 (diff)
downloadlinux-847d68abf10c7dc930551318ea41ec96144b8fd6.tar.xz
KVM: x86: Setup Hyper-V TSC page before Xen PV clocks (during clock update)
When updating paravirtual clocks, setup the Hyper-V TSC page before Xen PV clocks. This will allow dropping xen_pvclock_tsc_unstable in favor of simply clearing PVCLOCK_TSC_STABLE_BIT in the reference flags. Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Paul Durrant <paul@xen.org> Link: https://lore.kernel.org/r/20250201013827.680235-11-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
-rw-r--r--arch/x86/kvm/x86.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index bdc6f449f192..eefd68f8a6f8 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3280,6 +3280,8 @@ static int kvm_guest_time_update(struct kvm_vcpu *v)
hv_clock.flags &= ~PVCLOCK_GUEST_STOPPED;
}
+ kvm_hv_setup_tsc_page(v->kvm, &hv_clock);
+
#ifdef CONFIG_KVM_XEN
if (vcpu->xen.vcpu_info_cache.active)
kvm_setup_guest_pvclock(&hv_clock, v, &vcpu->xen.vcpu_info_cache,
@@ -3289,7 +3291,6 @@ static int kvm_guest_time_update(struct kvm_vcpu *v)
kvm_setup_guest_pvclock(&hv_clock, v, &vcpu->xen.vcpu_time_info_cache, 0,
xen_pvclock_tsc_unstable);
#endif
- kvm_hv_setup_tsc_page(v->kvm, &hv_clock);
return 0;
}