]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Allow to specify pit timer tick policy=discard
authorMaxim Nestratov <mnestratov@virtuozzo.com>
Fri, 9 Dec 2016 14:28:05 +0000 (17:28 +0300)
committerJohn Ferlan <jferlan@redhat.com>
Fri, 6 Jan 2017 23:27:06 +0000 (18:27 -0500)
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 <mnestratov@virtuozzo.com>
src/qemu/qemu_command.c
tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.args [moved from tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.args with 100% similarity]
tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.xml [moved from tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml with 95% similarity]
tests/qemuxml2argvtest.c

index 10325e3e5e6097d250f1c7a71994e2ba43c89dfe..d459f8e3e36ce61f77c32af796403f97e96d1d2d 100644 (file)
@@ -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));
similarity index 95%
rename from tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-device.xml
rename to tests/qemuxml2argvdata/qemuxml2argv-kvm-pit-discard.xml
index 7835a1b03bea0da2be85884c7fa86024a22c352d..d8ddcbaf4ca4c7662da9639039040dbcfec80d56 100644 (file)
@@ -9,7 +9,7 @@
     <boot dev='hd'/>
   </os>
   <clock offset='utc'>
-    <timer name='pit' tickpolicy='delay'/>
+    <timer name='pit' tickpolicy='discard'/>
   </clock>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
index 559dd3ba5307c2fa4c8948bedef34d3dfda6ddaa..ba5e3b87b69dfd9eea541c29e39037ea93f2e6be 100644 (file)
@@ -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);