提交 88c7f28b 编写于 作者: M Martin Kletzander 提交者: Cole Robinson

fix kvm_pv_eoi with kvmclock

When both kvmclock and kvm_pv_eoi are configured (either disabled or
enabled) libvirt will generate invalid CPU specification due to the
fact that even though kvmclock causes the CPU to be specified, it
doesn't set have_cpu flag to true (and the new kvm_pv_eoi as well).
This patch fixes the issue and adds a test exactly for that to show
that it is fixed correctly (and also to keep it that way in the future
of course).
(cherry picked from commit 5d692cc7)
上级 9e423dd3
...@@ -4263,6 +4263,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver, ...@@ -4263,6 +4263,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
virBufferAsprintf(&buf, "%s,%ckvmclock", virBufferAsprintf(&buf, "%s,%ckvmclock",
have_cpu ? "" : default_model, have_cpu ? "" : default_model,
sign); sign);
have_cpu = true;
break; break;
} }
} }
...@@ -4277,6 +4278,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver, ...@@ -4277,6 +4278,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
virBufferAsprintf(&buf, "%s,%ckvm_pv_eoi", virBufferAsprintf(&buf, "%s,%ckvm_pv_eoi",
have_cpu ? "" : default_model, have_cpu ? "" : default_model,
sign); sign);
have_cpu = true;
} }
if (virBufferError(&buf)) if (virBufferError(&buf))
......
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc \
-cpu qemu32,-kvmclock,-kvm_pv_eoi -m 214 -smp 6 -nographic -monitor \
unix:/tmp/test-monitor,server,nowait -boot n -net none -serial \
none -parallel none -usb
<domain type='qemu'>
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory unit='KiB'>219100</memory>
<currentMemory unit='KiB'>219100</currentMemory>
<vcpu placement='static'>6</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='network'/>
</os>
<features>
<acpi/>
<apic eoi='off'/>
<pae/>
</features>
<clock offset='utc'>
<timer name='kvmclock' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu</emulator>
<controller type='usb' index='0'/>
<memballoon model='virtio'/>
</devices>
</domain>
...@@ -397,6 +397,7 @@ mymain(void) ...@@ -397,6 +397,7 @@ mymain(void)
DO_TEST("cpu-eoi-enabled", QEMU_CAPS_ENABLE_KVM); DO_TEST("cpu-eoi-enabled", QEMU_CAPS_ENABLE_KVM);
DO_TEST("eoi-disabled", NONE); DO_TEST("eoi-disabled", NONE);
DO_TEST("eoi-enabled", NONE); DO_TEST("eoi-enabled", NONE);
DO_TEST("kvmclock+eoi-disabled", QEMU_CAPS_ENABLE_KVM);
DO_TEST("hugepages", QEMU_CAPS_MEM_PATH); DO_TEST("hugepages", QEMU_CAPS_MEM_PATH);
DO_TEST("disk-cdrom", NONE); DO_TEST("disk-cdrom", NONE);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册