On Thu, Sep 26, 2013 at 10:50:16AM +0200, Ján Tomko wrote: > Since qemu-kvm 1.1 [1] (since 1.3. in upstream QEMU [2]) > '-no-kvm-pit-reinjection' has been deprecated. > Use -global kvm-pit.lost_tick_policy=discard instead. > > https://bugzilla.redhat.com/show_bug.cgi?id=978719 > > [1] http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/commit/?id=4e4fa39 > [2] http://git.qemu.org/?p=qemu.git;a=commitdiff;h=c21fb4f > --- > v3: use -global instead of trying to add another -device > > re: https://www.redhat.com/archives/libvir-list/2013-July/msg00833.html > Unsetting the QEMU_CAPS_NO_KVM_PIT capability for QEMU >1.2 seems to work > okay with libvirtd upgrades. > > v2: https://www.redhat.com/archives/libvir-list/2013-July/msg00821.html > v1: https://www.redhat.com/archives/libvir-list/2013-July/msg00045.html > > src/qemu/qemu_capabilities.c | 5 ++-- > src/qemu/qemu_capabilities.h | 1 + > src/qemu/qemu_command.c | 8 ++++-- > .../qemuxml2argv-kvm-pit-delay.args | 5 ++++ > .../qemuxml2argv-kvm-pit-delay.xml | 29 ++++++++++++++++++++++ > .../qemuxml2argv-kvm-pit-device.args | 5 ++++ > .../qemuxml2argv-kvm-pit-device.xml | 29 ++++++++++++++++++++++ > tests/qemuxml2argvtest.c | 4 +++ > 8 files changed, 82 insertions(+), 4 deletions(-) > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-delay.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-delay.xml > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml > > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c > index dc8f0be..06b71b5 100644 > --- a/src/qemu/qemu_capabilities.c > +++ b/src/qemu/qemu_capabilities.c > @@ -242,6 +242,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, > "usb-storage.removable", > "virtio-mmio", > "ich9-intel-hda", > + "kvm-pit", > ); > > struct _virQEMUCaps { > @@ -1393,6 +1394,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { > { "usb-storage", QEMU_CAPS_DEVICE_USB_STORAGE }, > { "virtio-mmio", QEMU_CAPS_DEVICE_VIRTIO_MMIO }, > { "ich9-intel-hda", QEMU_CAPS_DEVICE_ICH9_INTEL_HDA }, > + { "kvm-pit", QEMU_CAPS_DEVICE_KVM_PIT }, > }; > Cleaner way would be (IMHO): static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsKvmPit[] = { { "lost_tick_policy", QEMU_CAPS_KVM_PIT_TICK_POLICY }, }; (or similar) and then adding into virQEMUCapsObjectProps[]: { "kvm-pit", virQEMUCapsObjectPropsKvmPit, ARRAY_CARDINALITY(virQEMUCapsObjectPropsKvmPit) } > static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = { > @@ -2477,13 +2479,12 @@ virQEMUCapsInitArchQMPBasic(virQEMUCapsPtr qemuCaps, > > /* > * Currently only x86_64 and i686 support PCI-multibus, > - * -no-acpi and -no-kvm-pit-reinjection. > + * -no-acpi > */ > if (qemuCaps->arch == VIR_ARCH_X86_64 || > qemuCaps->arch == VIR_ARCH_I686) { > virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS); > virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_ACPI); > - virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_KVM_PIT); > } > Sorry to dissapoint you in v3, but I must say, I still agree with Eric. Since that flag is just 'deprecated', it doesn't mean that it is not recognized. And thanks to the fact that you have a possibility to check whether the newer 'kvm-pit.lost_tick_policy' is supported, you can safely choose all three states even if there is a qemu with QMP on x86_64 without 'kvm-pit.lost_tick_policy' and it will still work correctly then. I'd keep the fallback until it is recognized, so it can be used even if there is no other (non-deprecated) option. Martin
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list