From: Maxim Nestratov Date: Fri, 9 Dec 2016 14:28:05 +0000 (+0300) Subject: qemu: Allow to specify pit timer tick policy=discard X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=af78cb04867263900ecb682279d79e8b9af84b7b;p=libvirt.git qemu: Allow to specify pit timer tick policy=discard Separate out the "policy=discard" into it's own specific qemu command line. We'll rename "kvm-pit-device" test case to be "kvm-pit-discard" since it has the syntax we'd be using. Signed-off-by: Maxim Nestratov --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 10325e3e5e..d459f8e3e3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6261,9 +6261,15 @@ qemuBuildClockCommandLine(virCommandPtr cmd, return -1; } break; - case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: - /* no way to support these modes for pit in qemu */ + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM_PIT_TICK_POLICY)) + virCommandAddArgList(cmd, "-global", + "kvm-pit.lost_tick_policy=discard", NULL); + else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_KVM_PIT)) + virCommandAddArg(cmd, "-no-kvm-pit-reinjection"); + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: + /* no way to support this mode for pit in qemu */ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported pit tickpolicy '%s'"), virDomainTimerTickpolicyTypeToString(def->clock.timers[i]->tickpolicy)); diff --git a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.args b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.args deleted file mode 100644 index 5ff60affd7..0000000000 --- a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.args +++ /dev/null @@ -1,23 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/home/test \ -USER=test \ -LOGNAME=test \ -QEMU_AUDIO_DRV=none \ -/usr/bin/qemu \ --name QEMUGuest1 \ --S \ --M pc \ --m 214 \ --smp 2,sockets=2,cores=1,threads=1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --nographic \ --nodefaults \ --monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \ --global kvm-pit.lost_tick_policy=discard \ --no-acpi \ --boot c \ --usb \ --drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ --device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ --device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml deleted file mode 100644 index 7835a1b03b..0000000000 --- a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml +++ /dev/null @@ -1,29 +0,0 @@ - - QEMUGuest1 - c7a5fdbd-edaf-9455-926a-d65c16db1809 - 219136 - 219136 - 2 - - hvm - - - - - - destroy - restart - destroy - - /usr/bin/qemu - - - -
- - - - - - - diff --git a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.args b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.args new file mode 100644 index 0000000000..5ff60affd7 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.args @@ -0,0 +1,23 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-m 214 \ +-smp 2,sockets=2,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefaults \ +-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \ +-global kvm-pit.lost_tick_policy=discard \ +-no-acpi \ +-boot c \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.xml b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.xml new file mode 100644 index 0000000000..d8ddcbaf4c --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.xml @@ -0,0 +1,29 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 2 + + hvm + + + + + + destroy + restart + destroy + + /usr/bin/qemu + + + +
+ + + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 559dd3ba53..ba5e3b87b6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2275,6 +2275,7 @@ mymain(void) qemuTestSetHostArch(driver.caps, VIR_ARCH_NONE); DO_TEST("kvm-pit-delay", QEMU_CAPS_KVM_PIT_TICK_POLICY); + DO_TEST("kvm-pit-discard", QEMU_CAPS_KVM_PIT_TICK_POLICY); DO_TEST("panic", QEMU_CAPS_DEVICE_PANIC, QEMU_CAPS_NODEFCONFIG);