mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
qemu: Add support for guest CPU cache
This patch maps /domain/cpu/cache element into -cpu parameters: - <cache mode='passthrough'/> is translated to host-cache-info=on - <cache level='3' mode='emulate'/> is transformed into l3-cache=on - <cache mode='disable'/> is turned in host-cache-info=off,l3-cache=off Any other <cache> element is forbidden. The tricky part is detecting whether QEMU supports the CPU properties. The 'host-cache-info' property is introduced in v2.4.0-1389-ge265e3e480, earlier QEMU releases enabled host-cache-info by default and had no way to disable it. If the property is present, it defaults to 'off' for any QEMU until at least 2.9.0. The 'l3-cache' property was introduced later by v2.7.0-200-g14c985cffa. Earlier versions worked as if l3-cache=off was passed. For any QEMU until at least 2.9.0 l3-cache is 'off' by default. QEMU 2.9.0 was the first release which supports probing both properties by running device-list-properties with typename=host-x86_64-cpu. Older QEMU releases did not support device-list-properties command for CPU devices. Thus we can't really rely on probing them and we can just use query-cpu-model-expansion QMP command as a witness. Because the cache property probing is only reliable for QEMU >= 2.9.0 when both are already supported for quite a few releases, we let QEMU report an error if a specific cache mode is explicitly requested. The other mode (or both if a user requested CPU cache to be disabled) is explicitly turned off for QEMU >= 2.9.0 to avoid any surprises in case the QEMU defaults change. Any older QEMU already turns them off so not doing so explicitly does not make any harm. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
a646a6016a
commit
df13c0b477
@ -364,6 +364,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
|
||||
"query-cpu-definitions", /* 250 */
|
||||
"block-write-threshold",
|
||||
"query-named-block-nodes",
|
||||
"cpu-cache",
|
||||
);
|
||||
|
||||
|
||||
@ -4787,6 +4788,10 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
|
||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM))
|
||||
virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM);
|
||||
|
||||
if (ARCH_IS_X86(qemuCaps->arch) &&
|
||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION))
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_CACHE);
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
return ret;
|
||||
|
@ -401,6 +401,7 @@ typedef enum {
|
||||
QEMU_CAPS_QUERY_CPU_DEFINITIONS, /* qmp query-cpu-definitions */
|
||||
QEMU_CAPS_BLOCK_WRITE_THRESHOLD, /* BLOCK_WRITE_THRESHOLD event */
|
||||
QEMU_CAPS_QUERY_NAMED_BLOCK_NODES, /* qmp query-named-block-nodes */
|
||||
QEMU_CAPS_CPU_CACHE, /* -cpu supports host-cache-info and l3-cache properties */
|
||||
|
||||
QEMU_CAPS_LAST /* this must always be the last item */
|
||||
} virQEMUCapsFlags;
|
||||
|
@ -7063,6 +7063,45 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
|
||||
have_cpu = true;
|
||||
}
|
||||
|
||||
if (def->cpu && def->cpu->cache) {
|
||||
virCPUCacheDefPtr cache = def->cpu->cache;
|
||||
bool hostOff = false;
|
||||
bool l3Off = false;
|
||||
|
||||
if (!have_cpu) {
|
||||
virBufferAdd(&buf, default_model, -1);
|
||||
have_cpu = true;
|
||||
}
|
||||
|
||||
switch (cache->mode) {
|
||||
case VIR_CPU_CACHE_MODE_EMULATE:
|
||||
virBufferAddLit(&buf, ",l3-cache=on");
|
||||
hostOff = true;
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_PASSTHROUGH:
|
||||
virBufferAddLit(&buf, ",host-cache-info=on");
|
||||
l3Off = true;
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_DISABLE:
|
||||
hostOff = l3Off = true;
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
|
||||
if (hostOff &&
|
||||
def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH &&
|
||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_CACHE))
|
||||
virBufferAddLit(&buf, ",host-cache-info=off");
|
||||
|
||||
if (l3Off &&
|
||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_CACHE))
|
||||
virBufferAddLit(&buf, ",l3-cache=off");
|
||||
}
|
||||
|
||||
if (virBufferCheckError(&buf) < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
@ -2719,6 +2719,60 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def)
|
||||
if (!def->cpu)
|
||||
return 0;
|
||||
|
||||
if (def->cpu->cache) {
|
||||
virCPUCacheDefPtr cache = def->cpu->cache;
|
||||
|
||||
if (!ARCH_IS_X86(def->os.arch)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("CPU cache specification is not supported "
|
||||
"for '%s' architecture"),
|
||||
virArchToString(def->os.arch));
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (cache->mode) {
|
||||
case VIR_CPU_CACHE_MODE_EMULATE:
|
||||
if (cache->level != 3) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("CPU cache mode '%s' can only be used with "
|
||||
"level='3'"),
|
||||
virCPUCacheModeTypeToString(cache->mode));
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_PASSTHROUGH:
|
||||
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("CPU cache mode '%s' can only be used with "
|
||||
"'%s' CPUs"),
|
||||
virCPUCacheModeTypeToString(cache->mode),
|
||||
virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cache->level != -1) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported CPU cache level for mode '%s'"),
|
||||
virCPUCacheModeTypeToString(cache->mode));
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_DISABLE:
|
||||
if (cache->level != -1) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported CPU cache level for mode '%s'"),
|
||||
virCPUCacheModeTypeToString(cache->mode));
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_CPU_CACHE_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Nothing to be done if only CPU topology is specified. */
|
||||
if (def->cpu->mode == VIR_CPU_MODE_CUSTOM &&
|
||||
!def->cpu->model)
|
||||
|
@ -208,6 +208,7 @@
|
||||
<flag name='query-cpu-definitions'/>
|
||||
<flag name='block-write-threshold'/>
|
||||
<flag name='query-named-block-nodes'/>
|
||||
<flag name='cpu-cache'/>
|
||||
<version>2009000</version>
|
||||
<kvmVersion>0</kvmVersion>
|
||||
<package> (v2.9.0)</package>
|
||||
|
21
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable.args
Normal file
21
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable.args
Normal file
@ -0,0 +1,21 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu host,host-cache-info=off,l3-cache=off \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable.xml
Normal file
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache mode='disable'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
21
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable2.args
Normal file
21
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable2.args
Normal file
@ -0,0 +1,21 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu host \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable2.xml
Normal file
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable2.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache mode='disable'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
22
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable3.args
Normal file
22
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable3.args
Normal file
@ -0,0 +1,22 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,\
|
||||
+lahf_lm,l3-cache=off \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable3.xml
Normal file
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-disable3.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-model'>
|
||||
<cache mode='disable'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-emulate-l2.xml
Normal file
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-emulate-l2.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-model' check='full'>
|
||||
<cache level='2' mode='emulate'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,21 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu host,l3-cache=on,host-cache-info=off \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-emulate-l3.xml
Normal file
20
tests/qemuxml2argvdata/qemuxml2argv-cpu-cache-emulate-l3.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache level='3' mode='emulate'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache level='3' mode='passthrough'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,21 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu host,host-cache-info=on,l3-cache=off \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache mode='passthrough'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,21 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name foo \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu host,host-cache-info=on \
|
||||
-m 214 \
|
||||
-smp 1,sockets=1,cores=1,threads=1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-foo/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-passthrough'>
|
||||
<cache mode='passthrough'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,20 @@
|
||||
<domain type='kvm'>
|
||||
<name>foo</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='host-model'>
|
||||
<cache mode='passthrough'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
</devices>
|
||||
</domain>
|
@ -2513,6 +2513,16 @@ mymain(void)
|
||||
DO_TEST("cpu-check-default-partial", QEMU_CAPS_KVM);
|
||||
DO_TEST("cpu-check-default-partial2", QEMU_CAPS_KVM);
|
||||
|
||||
DO_TEST("cpu-cache-disable", QEMU_CAPS_KVM, QEMU_CAPS_CPU_CACHE);
|
||||
DO_TEST("cpu-cache-disable2", QEMU_CAPS_KVM);
|
||||
DO_TEST("cpu-cache-disable3", QEMU_CAPS_KVM, QEMU_CAPS_CPU_CACHE);
|
||||
DO_TEST("cpu-cache-passthrough", QEMU_CAPS_KVM, QEMU_CAPS_CPU_CACHE);
|
||||
DO_TEST("cpu-cache-passthrough2", QEMU_CAPS_KVM);
|
||||
DO_TEST("cpu-cache-emulate-l3", QEMU_CAPS_KVM, QEMU_CAPS_CPU_CACHE);
|
||||
DO_TEST_PARSE_ERROR("cpu-cache-emulate-l2", QEMU_CAPS_KVM);
|
||||
DO_TEST_PARSE_ERROR("cpu-cache-passthrough3", QEMU_CAPS_KVM);
|
||||
DO_TEST_PARSE_ERROR("cpu-cache-passthrough-l3", QEMU_CAPS_KVM);
|
||||
|
||||
qemuTestDriverFree(&driver);
|
||||
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
|
Loading…
Reference in New Issue
Block a user