On Wed, May 22, 2024, David Woodhouse wrote: > From: David Woodhouse <dwmw@xxxxxxxxxxxx> > > Commit 0061d53daf26 ("KVM: x86: limit difference between kvmclock updates") > introduced a KVM_REQ_GLOBAL_CLOCK_UPDATE when one vCPU set up its clock. > > This was a workaround for the ever-drifting clocks which were based on the > host's CLOCK_MONOTONIC and thus subject to NTP skew. On booting or resuming > a guest, it just leads to running kvm_guest_time_update() twice for each > vCPU for now good reason. s/now/no > Just use KVM_REQ_CLOCK_UPDATE on the vCPU itself, and only in the case > where the KVM clock is being set up, not turned off. > > Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx> > --- > arch/x86/kvm/x86.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 437412b36cae..32a873d5ed00 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -2361,13 +2361,13 @@ static void kvm_write_system_time(struct kvm_vcpu *vcpu, gpa_t system_time, > } > > vcpu->arch.time = system_time; > - kvm_make_request(KVM_REQ_GLOBAL_CLOCK_UPDATE, vcpu); > > /* we verify if the enable bit is set... */ > - if (system_time & 1) > + if (system_time & 1) { > kvm_gpc_activate(&vcpu->arch.pv_time, system_time & ~1ULL, > sizeof(struct pvclock_vcpu_time_info)); > - else > + kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); > + } else Needs curly braces now that the if-statement has 'em. > kvm_gpc_deactivate(&vcpu->arch.pv_time); > > return; > -- > 2.44.0 >