Recently there was an internal discussion with several qemu developers about default VM clock/timer configuration. What they recommended maps to this libvirt XML: <clock ...> <timer name="rtc" tickpolicy="catchup"/> <timer name="pit" tickpolicy="delay"/> <timer name="hpet" present="no"/> </clock> This maps to the qemu command line options: -rtc driftfix=slew -no-hpet -no-kvm-pit-reinjection Explicitly this was recommended for all guest OS. Some bits don't affect certain OS, but in those cases they are harmless. vdsm is currently only using: <timer name="rtc" tickpolicy="catchup"> So it's missing two of those recommended bits.
Cole, thanks for this call from the past. Vdsm used to pass -no-kvm-pit-reinjection for Linux guests but this was not carried over properly when I re-implemented it to use libvirt as a middleman. We also enabled a hackish time-drift-fix. IIRC, there where commonly not enough hpets on a host for all VMs, so hpet was not really useful anyway. Do you have a more lucid reference on why this is the favorable combination? Ronen, maybe you can assist? BTW, Engine still has if (OsRepositoryImpl.INSTANCE.isLinux(vm.getVmOsId())) { createInfo.put(VdsProperties.PitReinjection, "false"); } which should be dropped if nowadays -no-kvm-pit-reinjection is best for all guests.
patch to VDSM is being discussed here: http://gerrit.ovirt.org/#/c/23663/
Can you provide any testing information for this?
This is an internal change, the guest OS should'nt notice anything except increased stability during the normal operation. I guess the best, maybe only, way to test this is to look at the domain XML of the VMs.
verified for vm created in ovirt-3.5.0-beta2
oVirt 3.5 has been released and should include the fix for this issue.