From c563b50605ae9895b981d198e11dbe9f6e18027b Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Mon, 23 Mar 2015 17:19:28 +0100 Subject: [PATCH] cpu: Add {Haswell,Broadwell}-noTSX CPU models QEMU 2.3 adds these new models to cover Haswell and Broadwell CPUs with updated microcode. Luckily, they also reverted former the machine type specific changes to existing models. And since these changes were never released, we don't need to hack around them in libvirt. Signed-off-by: Jiri Denemark --- src/cpu/cpu_map.xml | 18 ++- tests/cputest.c | 15 ++- .../x86-Haswell-noTSX-nofallback.xml | 4 + tests/cputestdata/x86-Haswell-noTSX.xml | 4 + tests/cputestdata/x86-Haswell.xml | 6 + tests/cputestdata/x86-baseline-7-result.xml | 4 + tests/cputestdata/x86-baseline-7.xml | 24 ++++ tests/cputestdata/x86-baseline-8-result.xml | 4 + tests/cputestdata/x86-baseline-8.xml | 28 ++++ ...l-noTSX+Haswell,haswell,Haswell-result.xml | 6 + ...TSX+Haswell-noTSX,Haswell-noTSX-result.xml | 4 + ...ell-noTSX,haswell,Haswell-noTSX-result.xml | 6 + tests/cputestdata/x86-host-Haswell-noTSX.xml | 6 + .../qemuxml2argv-cpu-Haswell-noTSX.args | 4 + .../qemuxml2argv-cpu-Haswell-noTSX.xml | 21 +++ .../qemuxml2argv-cpu-Haswell.args | 4 + .../qemuxml2argv-cpu-Haswell.xml | 21 +++ .../qemuxml2argv-cpu-Haswell2.args | 4 + .../qemuxml2argv-cpu-Haswell2.xml | 23 ++++ .../qemuxml2argv-cpu-Haswell3.args | 4 + .../qemuxml2argv-cpu-Haswell3.xml | 23 ++++ tests/qemuxml2argvtest.c | 8 ++ tests/testutilsqemu.c | 124 +++++++++++++----- tests/testutilsqemu.h | 6 + 24 files changed, 331 insertions(+), 40 deletions(-) create mode 100644 tests/cputestdata/x86-Haswell-noTSX-nofallback.xml create mode 100644 tests/cputestdata/x86-Haswell-noTSX.xml create mode 100644 tests/cputestdata/x86-Haswell.xml create mode 100644 tests/cputestdata/x86-baseline-7-result.xml create mode 100644 tests/cputestdata/x86-baseline-7.xml create mode 100644 tests/cputestdata/x86-baseline-8-result.xml create mode 100644 tests/cputestdata/x86-baseline-8.xml create mode 100644 tests/cputestdata/x86-host-Haswell-noTSX+Haswell,haswell,Haswell-result.xml create mode 100644 tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,Haswell-noTSX-result.xml create mode 100644 tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,haswell,Haswell-noTSX-result.xml create mode 100644 tests/cputestdata/x86-host-Haswell-noTSX.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.xml diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml index 413148ff6b..2110c0b9b2 100644 --- a/src/cpu/cpu_map.xml +++ b/src/cpu/cpu_map.xml @@ -500,30 +500,40 @@ - + - + + + + + - - + + + + + + + + diff --git a/tests/cputest.c b/tests/cputest.c index 449b7d1e25..bf7a48fadb 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -122,8 +122,10 @@ cpuTestLoadMultiXML(const char *arch, goto cleanup; n = virXPathNodeSet("/cpuTest/cpu", ctxt, &nodes); - if (n <= 0 || (VIR_ALLOC_N(cpus, n) < 0)) + if (n <= 0 || (VIR_ALLOC_N(cpus, n) < 0)) { + fprintf(stderr, "\nNo /cpuTest/cpu elements found in %s\n", xml); goto cleanup; + } for (i = 0; i < n; i++) { ctxt->node = nodes[i]; @@ -497,6 +499,7 @@ cpuTestRun(const char *name, const struct data *data) static const char *model486[] = { "486" }; static const char *nomodel[] = { "nomodel" }; static const char *models[] = { "qemu64", "core2duo", "Nehalem" }; +static const char *haswell[] = { "SandyBridge", "Haswell" }; static const char *ppc_models[] = { "POWER7", "POWER7_v2.1", "POWER8_v1.0"}; static int @@ -618,6 +621,8 @@ mymain(void) DO_TEST_BASELINE("x86", "5", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0); DO_TEST_BASELINE("x86", "6", 0, 0); DO_TEST_BASELINE("x86", "6", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0); + DO_TEST_BASELINE("x86", "7", 0, 0); + DO_TEST_BASELINE("x86", "8", 0, 0); DO_TEST_BASELINE("ppc64", "incompatible-vendors", 0, -1); DO_TEST_BASELINE("ppc64", "no-vendor", 0, 0); @@ -646,6 +651,14 @@ mymain(void) DO_TEST_GUESTDATA("x86", "host", "host+host-model", models, "Penryn", 0); DO_TEST_GUESTDATA("x86", "host", "host+host-model-nofallback", models, "Penryn", -1); + DO_TEST_GUESTDATA("x86", "host-Haswell-noTSX", "Haswell", + haswell, "Haswell", 0); + DO_TEST_GUESTDATA("x86", "host-Haswell-noTSX", "Haswell-noTSX", + haswell, "Haswell-noTSX", 0); + DO_TEST_GUESTDATA("x86", "host-Haswell-noTSX", "Haswell-noTSX-nofallback", + haswell, "Haswell-noTSX", -1); + DO_TEST_GUESTDATA("x86", "host-Haswell-noTSX", "Haswell-noTSX", + NULL, "Haswell-noTSX", 0); DO_TEST_GUESTDATA("ppc64", "host", "guest", ppc_models, NULL, 0); DO_TEST_GUESTDATA("ppc64", "host", "guest-nofallback", ppc_models, "POWER7_v2.1", -1); diff --git a/tests/cputestdata/x86-Haswell-noTSX-nofallback.xml b/tests/cputestdata/x86-Haswell-noTSX-nofallback.xml new file mode 100644 index 0000000000..c23c3f3bd0 --- /dev/null +++ b/tests/cputestdata/x86-Haswell-noTSX-nofallback.xml @@ -0,0 +1,4 @@ + + Haswell-noTSX + + diff --git a/tests/cputestdata/x86-Haswell-noTSX.xml b/tests/cputestdata/x86-Haswell-noTSX.xml new file mode 100644 index 0000000000..3b74089647 --- /dev/null +++ b/tests/cputestdata/x86-Haswell-noTSX.xml @@ -0,0 +1,4 @@ + + Haswell-noTSX + + diff --git a/tests/cputestdata/x86-Haswell.xml b/tests/cputestdata/x86-Haswell.xml new file mode 100644 index 0000000000..630cb99942 --- /dev/null +++ b/tests/cputestdata/x86-Haswell.xml @@ -0,0 +1,6 @@ + + Haswell + + + + diff --git a/tests/cputestdata/x86-baseline-7-result.xml b/tests/cputestdata/x86-baseline-7-result.xml new file mode 100644 index 0000000000..2af549e77a --- /dev/null +++ b/tests/cputestdata/x86-baseline-7-result.xml @@ -0,0 +1,4 @@ + + Haswell-noTSX + Intel + diff --git a/tests/cputestdata/x86-baseline-7.xml b/tests/cputestdata/x86-baseline-7.xml new file mode 100644 index 0000000000..b7e61b160c --- /dev/null +++ b/tests/cputestdata/x86-baseline-7.xml @@ -0,0 +1,24 @@ + + + x86_64 + SandyBridge + Intel + + + + + + + + + + + + + + x86_64 + Haswell-noTSX + Intel + + + diff --git a/tests/cputestdata/x86-baseline-8-result.xml b/tests/cputestdata/x86-baseline-8-result.xml new file mode 100644 index 0000000000..88226b3dab --- /dev/null +++ b/tests/cputestdata/x86-baseline-8-result.xml @@ -0,0 +1,4 @@ + + Broadwell-noTSX + Intel + diff --git a/tests/cputestdata/x86-baseline-8.xml b/tests/cputestdata/x86-baseline-8.xml new file mode 100644 index 0000000000..f1ee67d542 --- /dev/null +++ b/tests/cputestdata/x86-baseline-8.xml @@ -0,0 +1,28 @@ + + + x86_64 + SandyBridge + Intel + + + + + + + + + + + + + + + + + + x86_64 + Broadwell-noTSX + Intel + + + diff --git a/tests/cputestdata/x86-host-Haswell-noTSX+Haswell,haswell,Haswell-result.xml b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell,haswell,Haswell-result.xml new file mode 100644 index 0000000000..087aa7d4c9 --- /dev/null +++ b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell,haswell,Haswell-result.xml @@ -0,0 +1,6 @@ + + x86_64 + Haswell + + + diff --git a/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,Haswell-noTSX-result.xml b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,Haswell-noTSX-result.xml new file mode 100644 index 0000000000..f5a67fb6b1 --- /dev/null +++ b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,Haswell-noTSX-result.xml @@ -0,0 +1,4 @@ + + x86_64 + Haswell-noTSX + diff --git a/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,haswell,Haswell-noTSX-result.xml b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,haswell,Haswell-noTSX-result.xml new file mode 100644 index 0000000000..087aa7d4c9 --- /dev/null +++ b/tests/cputestdata/x86-host-Haswell-noTSX+Haswell-noTSX,haswell,Haswell-noTSX-result.xml @@ -0,0 +1,6 @@ + + x86_64 + Haswell + + + diff --git a/tests/cputestdata/x86-host-Haswell-noTSX.xml b/tests/cputestdata/x86-host-Haswell-noTSX.xml new file mode 100644 index 0000000000..c0030858e4 --- /dev/null +++ b/tests/cputestdata/x86-host-Haswell-noTSX.xml @@ -0,0 +1,6 @@ + + x86_64 + Haswell-noTSX + Intel + + diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.args new file mode 100644 index 0000000000..d64cc83812 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.args @@ -0,0 +1,4 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-kvm -S -M pc -cpu Haswell-noTSX -m 214 -smp 6 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \ +none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.xml new file mode 100644 index 0000000000..9ef24cd521 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell-noTSX.xml @@ -0,0 +1,21 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 6 + + hvm + + + + Haswell-noTSX + + + destroy + restart + destroy + + /usr/bin/qemu-kvm + + diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.args new file mode 100644 index 0000000000..f9bea6215b --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.args @@ -0,0 +1,4 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-kvm -S -M pc -cpu Haswell -m 214 -smp 6 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \ +none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.xml new file mode 100644 index 0000000000..3af49f979e --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell.xml @@ -0,0 +1,21 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 6 + + hvm + + + + Haswell + + + destroy + restart + destroy + + /usr/bin/qemu-kvm + + diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.args new file mode 100644 index 0000000000..a398ab8849 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.args @@ -0,0 +1,4 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-kvm -S -M pc -cpu Haswell,-rtm,-hle -m 214 -smp 6 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \ +none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.xml new file mode 100644 index 0000000000..0d4efa14ff --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell2.xml @@ -0,0 +1,23 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 6 + + hvm + + + + Haswell + + + + + destroy + restart + destroy + + /usr/bin/qemu-kvm + + diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.args new file mode 100644 index 0000000000..f9bea6215b --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.args @@ -0,0 +1,4 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-kvm -S -M pc -cpu Haswell -m 214 -smp 6 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \ +none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.xml new file mode 100644 index 0000000000..00617ebd6f --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-Haswell3.xml @@ -0,0 +1,23 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 6 + + hvm + + + + Haswell + + + + + destroy + restart + destroy + + /usr/bin/qemu-kvm + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 08f374e056..43e00eac0e 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -454,6 +454,7 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy) const char *newModels[] = { "Opteron_G3", "Opteron_G2", "Opteron_G1", "Nehalem", "Penryn", "Conroe", + "Haswell-noTSX", "Haswell", }; const char *legacyModels[] = { "n270", "athlon", "pentium3", "pentium2", "pentium", @@ -1253,6 +1254,13 @@ mymain(void) DO_TEST_FAILURE("cpu-qemu-host-passthrough", QEMU_CAPS_KVM, QEMU_CAPS_CPU_HOST); + driver.caps->host.cpu = cpuHaswell; + DO_TEST("cpu-Haswell", QEMU_CAPS_KVM); + DO_TEST("cpu-Haswell2", QEMU_CAPS_KVM); + DO_TEST("cpu-Haswell3", QEMU_CAPS_KVM); + DO_TEST("cpu-Haswell-noTSX", QEMU_CAPS_KVM); + driver.caps->host.cpu = cpuDefault; + DO_TEST("memtune", QEMU_CAPS_NAME); DO_TEST("memtune-unlimited", QEMU_CAPS_NAME); DO_TEST("blkiotune", QEMU_CAPS_NAME); diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index d72e7d8479..7c581a1f37 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -12,6 +12,83 @@ # define VIR_FROM_THIS VIR_FROM_QEMU +virCPUDefPtr cpuDefault; +virCPUDefPtr cpuHaswell; + +static virCPUFeatureDef cpuDefaultFeatures[] = { + { (char *) "lahf_lm", -1 }, + { (char *) "xtpr", -1 }, + { (char *) "cx16", -1 }, + { (char *) "tm2", -1 }, + { (char *) "est", -1 }, + { (char *) "vmx", -1 }, + { (char *) "ds_cpl", -1 }, + { (char *) "pbe", -1 }, + { (char *) "tm", -1 }, + { (char *) "ht", -1 }, + { (char *) "ss", -1 }, + { (char *) "acpi", -1 }, + { (char *) "ds", -1 } +}; +static virCPUDef cpuDefaultData = { + VIR_CPU_TYPE_HOST, /* type */ + 0, /* mode */ + 0, /* match */ + VIR_ARCH_X86_64, /* arch */ + (char *) "core2duo", /* model */ + NULL, /* vendor_id */ + 0, /* fallback */ + (char *) "Intel", /* vendor */ + 1, /* sockets */ + 2, /* cores */ + 1, /* threads */ + ARRAY_CARDINALITY(cpuDefaultFeatures), /* nfeatures */ + ARRAY_CARDINALITY(cpuDefaultFeatures), /* nfeatures_max */ + cpuDefaultFeatures, /* features */ +}; + +static virCPUFeatureDef cpuHaswellFeatures[] = { + { (char *) "lahf_lm", -1 }, + { (char *) "invtsc", -1 }, + { (char *) "abm", -1 }, + { (char *) "pdpe1gb", -1 }, + { (char *) "rdrand", -1 }, + { (char *) "f16c", -1 }, + { (char *) "osxsave", -1 }, + { (char *) "pdcm", -1 }, + { (char *) "xtpr", -1 }, + { (char *) "tm2", -1 }, + { (char *) "est", -1 }, + { (char *) "smx", -1 }, + { (char *) "vmx", -1 }, + { (char *) "ds_cpl", -1 }, + { (char *) "monitor", -1 }, + { (char *) "dtes64", -1 }, + { (char *) "pbe", -1 }, + { (char *) "tm", -1 }, + { (char *) "ht", -1 }, + { (char *) "ss", -1 }, + { (char *) "acpi", -1 }, + { (char *) "ds", -1 }, + { (char *) "vme", -1 }, +}; +static virCPUDef cpuHaswellData = { + VIR_CPU_TYPE_HOST, /* type */ + 0, /* mode */ + 0, /* match */ + VIR_ARCH_X86_64, /* arch */ + (char *) "Haswell", /* model */ + NULL, /* vendor_id */ + 0, /* fallback */ + (char *) "Intel", /* vendor */ + 1, /* sockets */ + 2, /* cores */ + 2, /* threads */ + ARRAY_CARDINALITY(cpuHaswellFeatures), /* nfeatures */ + ARRAY_CARDINALITY(cpuHaswellFeatures), /* nfeatures_max */ + cpuHaswellFeatures, /* features */ +}; + static virCapsGuestMachinePtr *testQemuAllocMachines(int *nmachines) { virCapsGuestMachinePtr *machines; @@ -239,40 +316,8 @@ virCapsPtr testQemuCapsInit(void) static const char *const xen_machines[] = { "xenner" }; - static virCPUFeatureDef host_cpu_features[] = { - { (char *) "lahf_lm", -1 }, - { (char *) "xtpr", -1 }, - { (char *) "cx16", -1 }, - { (char *) "tm2", -1 }, - { (char *) "est", -1 }, - { (char *) "vmx", -1 }, - { (char *) "ds_cpl", -1 }, - { (char *) "pbe", -1 }, - { (char *) "tm", -1 }, - { (char *) "ht", -1 }, - { (char *) "ss", -1 }, - { (char *) "acpi", -1 }, - { (char *) "ds", -1 } - }; - static virCPUDef host_cpu = { - VIR_CPU_TYPE_HOST, /* type */ - 0, /* mode */ - 0, /* match */ - VIR_ARCH_X86_64, /* arch */ - (char *) "core2duo", /* model */ - NULL, /* vendor_id */ - 0, /* fallback */ - (char *) "Intel", /* vendor */ - 1, /* sockets */ - 2, /* cores */ - 1, /* threads */ - ARRAY_CARDINALITY(host_cpu_features), /* nfeatures */ - ARRAY_CARDINALITY(host_cpu_features), /* nfeatures_max */ - host_cpu_features, /* features */ - }; - if ((caps = virCapabilitiesNew(host_cpu.arch, - false, false)) == NULL) + if (!(caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false))) return NULL; /* Add dummy 'none' security_driver. This is equal to setting @@ -285,8 +330,13 @@ virCapsPtr testQemuCapsInit(void) VIR_STRDUP(caps->host.secModels[0].doi, "0") < 0) goto cleanup; - if ((caps->host.cpu = virCPUDefCopy(&host_cpu)) == NULL || - (machines = testQemuAllocMachines(&nmachines)) == NULL) + if (!(cpuDefault = virCPUDefCopy(&cpuDefaultData)) || + !(cpuHaswell = virCPUDefCopy(&cpuHaswellData))) + goto cleanup; + + caps->host.cpu = cpuDefault; + + if ((machines = testQemuAllocMachines(&nmachines)) == NULL) goto cleanup; if ((guest = virCapabilitiesAddGuest(caps, "hvm", VIR_ARCH_I686, @@ -386,6 +436,10 @@ virCapsPtr testQemuCapsInit(void) cleanup: virCapabilitiesFreeMachines(machines, nmachines); + if (caps->host.cpu != cpuDefault) + virCPUDefFree(cpuDefault); + if (caps->host.cpu != cpuHaswell) + virCPUDefFree(cpuHaswell); virObjectUnref(caps); return NULL; } diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h index 79ee1434c2..0ec5dadd2f 100644 --- a/tests/testutilsqemu.h +++ b/tests/testutilsqemu.h @@ -10,4 +10,10 @@ virDomainXMLOptionPtr testQemuXMLConfInit(void); extern qemuBuildCommandLineCallbacks testCallbacks; virQEMUCapsPtr qemuTestParseCapabilities(const char *capsFile); + +extern virCPUDefPtr cpuDefault; +extern virCPUDefPtr cpuHaswell; +void testQemuCapsSetCPU(virCapsPtr caps, + virCPUDefPtr hostCPU); + #endif