[PATCH 0/3] KVM: x86: Mitigate kvm-clock drift caused by masterclock update
From: Dongli Zhang
Date: Thu Jan 15 2026 - 15:37:28 EST
As noted in commit c52ffadc65e2 ("KVM: x86: Don't unnecessarily
force masterclock update on vCPU hotplug"), each unnecessary
KVM_REQ_MASTERCLOCK_UPDATE can cause the kvm-clock time to jump.
Although that commit addressed the kvm-clock drift issue during vCPU
hotplugl there are still unnecessary KVM_REQ_MASTERCLOCK_UPDATE requests
during live migration on the target host.
The patchset below was authored by David Woodhouse. Two of the patches aim
to avoid unnecessary KVM_REQ_MASTERCLOCK_UPDATE requests.
[RFC PATCH v3 00/21] Cleaning up the KVM clock mess
https://lore.kernel.org/all/20240522001817.619072-1-dwmw2@xxxxxxxxxxxxx/
[RFC PATCH v3 10/21] KVM: x86: Fix software TSC upscaling in kvm_update_guest_time()
[RFC PATCH v3 15/21] KVM: x86: Allow KVM master clock mode when TSCs are offset from each other
The current patchset has three patches.
PATCH 1 is a partial copy of "[RFC PATCH v3 10/21] KVM: x86: Fix software
TSC upscaling in kvm_update_guest_time()", as Sean suggested, "Please do
this in a separate patch. There's no need to squeeze it in here, and this
change is complex/subtle enough as it is.", and David's authorship is
preserved.
PATCH 2 clears unnecessary KVM_REQ_MASTERCLOCK_UPDATE at the end of
KVM_SET_CLOCK, if masterclock is already active.
PATCH 3 avoids unnecessary updates of ka->master_kernel_ns and
ka->master_cycle_now in pvclock_update_vm_gtod_copy(), if it is already
active and will remain active.
David Woodhouse (1):
KVM: x86: Fix compute_guest_tsc() to cope with negative delta
Dongli Zhang (2):
KVM: x86: conditionally clear KVM_REQ_MASTERCLOCK_UPDATE at the end of KVM_SET_CLOCK
KVM: x86: conditionally update masterclock data in pvclock_update_vm_gtod_copy()
arch/x86/kvm/x86.c | 73 +++++++++++++++++++++++++++++++++++--------------
1 file changed, 52 insertions(+), 21 deletions(-)
base-commit: 944aacb68baf7624ab8d277d0ebf07f025ca137c
Thank you very much!
Dongli Zhang