On Thu, May 26, 2016 at 05:49:55PM +0300, Roman Kagan wrote: > The condition to schedule per-VM master clock updates is inversed; as a > result the master clocks are never updated and the kvm_clock drift WRT > host's NTP-disciplined clock (which was the motivation to introduce this > machinery in the first place) still remains. > > Fix it, and reword the comment to make it more apparent what the desired > behavior is. > > Cc: Owen Hofmann <osh@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx> > Signed-off-by: Roman Kagan <rkagan@xxxxxxxxxxxxx> > --- > 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 c805cf4..d8f591c 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -5810,10 +5810,10 @@ static int pvclock_gtod_notify(struct notifier_block *nb, unsigned long unused, > > update_pvclock_gtod(tk); > > - /* disable master clock if host does not trust, or does not > - * use, TSC clocksource > + /* only schedule per-VM master clock updates if the host uses TSC and > + * there's at least one VM in need of an update > */ > - if (gtod->clock.vclock_mode != VCLOCK_TSC && > + if (gtod->clock.vclock_mode == VCLOCK_TSC && > atomic_read(&kvm_guest_has_master_clock) != 0) > queue_work(system_long_wq, &pvclock_gtod_work); > > -- > 2.5.5 NAK, as stated this leaves clocks out of sync between execution of pvclock_gtod_notify and pvclock_gtod_work execution. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html