]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: x86: Setup Hyper-V TSC page before Xen PV clocks (during clock update)
authorSean Christopherson <seanjc@google.com>
Sat, 1 Feb 2025 01:38:26 +0000 (17:38 -0800)
committerSean Christopherson <seanjc@google.com>
Wed, 12 Feb 2025 18:45:55 +0000 (10:45 -0800)
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>
arch/x86/kvm/x86.c

index bdc6f449f1925cbac3cb569df6ec1c18e461a9da..eefd68f8a6f8b9b77648a19f68dad1ea2f82e0f3 100644 (file)
@@ -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;
 }