On Mon, Feb 08, 2016 at 04:18:27PM +0100, Paolo Bonzini wrote: > Currently kvmclock is obtaining the multiplier and shift value from > the TSC kHz. These however are less accurate than the host kernel's > clock, which includes corrections made through NTP. > > These patches change kvmclock to tick at the same frequency as the > host kernel's clocksource (as obtained through the pvclock_gtod > notifier). This is precise enough that the Hyper-V clock can be > implemented on top of it. Note the current option to sync kvmclock periodically every 300 seconds: #define KVMCLOCK_SYNC_PERIOD (300 * HZ) static void kvmclock_sync_fn(struct work_struct *work) { struct delayed_work *dwork = to_delayed_work(work); struct kvm_arch *ka = container_of(dwork, struct kvm_arch, kvmclock_sync_work); struct kvm *kvm = container_of(ka, struct kvm, arch); schedule_delayed_work(&kvm->arch.kvmclock_update_work, 0); schedule_delayed_work(&kvm->arch.kvmclock_sync_work, KVMCLOCK_SYNC_PERIOD); } How large is the error when the corrections are applied every 5 minutes? Does this match the errors you are seeing? -- 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