Fix specifying CPU for qemu aarch64
This commit is contained in:
parent
1073e2447a
commit
0a64085f47
291
0001-qemu_command-Split-qemuBuildCpuArgStr.patch
Normal file
291
0001-qemu_command-Split-qemuBuildCpuArgStr.patch
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
From e543e857120b8a1b352bf34fd8a983e95ea70487 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cole Robinson <crobinso@redhat.com>
|
||||||
|
Date: Tue, 23 Sep 2014 11:35:57 -0400
|
||||||
|
Subject: [PATCH] qemu_command: Split qemuBuildCpuArgStr
|
||||||
|
|
||||||
|
Move the CPU mode/model handling to its own function. This is just
|
||||||
|
code movement and re-indentation.
|
||||||
|
|
||||||
|
(cherry picked from commit e1d872dc77c80d43036f928f83f560f2e9286148)
|
||||||
|
---
|
||||||
|
src/qemu/qemu_command.c | 226 ++++++++++++++++++++++++++----------------------
|
||||||
|
1 file changed, 122 insertions(+), 104 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||||
|
index 2184caa..96ba081 100644
|
||||||
|
--- a/src/qemu/qemu_command.c
|
||||||
|
+++ b/src/qemu/qemu_command.c
|
||||||
|
@@ -6052,139 +6052,162 @@ qemuBuildClockArgStr(virDomainClockDefPtr def)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
static int
|
||||||
|
-qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||||
|
- const virDomainDef *def,
|
||||||
|
- const char *emulator,
|
||||||
|
- virQEMUCapsPtr qemuCaps,
|
||||||
|
- virArch hostarch,
|
||||||
|
- char **opt,
|
||||||
|
- bool *hasHwVirt,
|
||||||
|
- bool migrating)
|
||||||
|
+qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
|
+ const virDomainDef *def,
|
||||||
|
+ virBufferPtr buf,
|
||||||
|
+ virQEMUCapsPtr qemuCaps,
|
||||||
|
+ bool *hasHwVirt,
|
||||||
|
+ bool migrating)
|
||||||
|
{
|
||||||
|
+ int ret = -1;
|
||||||
|
+ size_t i;
|
||||||
|
virCPUDefPtr host = NULL;
|
||||||
|
virCPUDefPtr guest = NULL;
|
||||||
|
virCPUDefPtr cpu = NULL;
|
||||||
|
size_t ncpus = 0;
|
||||||
|
char **cpus = NULL;
|
||||||
|
- const char *default_model;
|
||||||
|
virCPUDataPtr data = NULL;
|
||||||
|
- bool have_cpu = false;
|
||||||
|
char *compare_msg = NULL;
|
||||||
|
- int ret = -1;
|
||||||
|
- virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
|
- size_t i;
|
||||||
|
+ virCPUCompareResult cmp;
|
||||||
|
+ const char *preferred;
|
||||||
|
virCapsPtr caps = NULL;
|
||||||
|
|
||||||
|
- *hasHwVirt = false;
|
||||||
|
-
|
||||||
|
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
host = caps->host.cpu;
|
||||||
|
|
||||||
|
- if (def->os.arch == VIR_ARCH_I686)
|
||||||
|
- default_model = "qemu32";
|
||||||
|
- else
|
||||||
|
- default_model = "qemu64";
|
||||||
|
+ if (!host ||
|
||||||
|
+ !host->model ||
|
||||||
|
+ (ncpus = virQEMUCapsGetCPUDefinitions(qemuCaps, &cpus)) == 0) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
+ _("CPU specification not supported by hypervisor"));
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (def->cpu &&
|
||||||
|
- (def->cpu->mode != VIR_CPU_MODE_CUSTOM || def->cpu->model)) {
|
||||||
|
- virCPUCompareResult cmp;
|
||||||
|
- const char *preferred;
|
||||||
|
+ if (!(cpu = virCPUDefCopy(def->cpu)))
|
||||||
|
+ goto cleanup;
|
||||||
|
+
|
||||||
|
+ if (cpu->mode != VIR_CPU_MODE_CUSTOM &&
|
||||||
|
+ !migrating &&
|
||||||
|
+ cpuUpdate(cpu, host) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
|
||||||
|
- if (!host ||
|
||||||
|
- !host->model ||
|
||||||
|
- (ncpus = virQEMUCapsGetCPUDefinitions(qemuCaps, &cpus)) == 0) {
|
||||||
|
+ cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||||
|
+ switch (cmp) {
|
||||||
|
+ case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||||
|
+ if (compare_msg) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
+ _("guest and host CPU are not compatible: %s"),
|
||||||
|
+ compare_msg);
|
||||||
|
+ } else {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
- _("CPU specification not supported by hypervisor"));
|
||||||
|
- goto cleanup;
|
||||||
|
+ _("guest CPU is not compatible with host CPU"));
|
||||||
|
}
|
||||||
|
+ /* fall through */
|
||||||
|
+ case VIR_CPU_COMPARE_ERROR:
|
||||||
|
+ goto cleanup;
|
||||||
|
|
||||||
|
- if (!(cpu = virCPUDefCopy(def->cpu)))
|
||||||
|
+ default:
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Only 'svm' requires --enable-nesting. The nested
|
||||||
|
+ * 'vmx' patches now simply hook off the CPU features
|
||||||
|
+ */
|
||||||
|
+ if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||||
|
+ def->os.arch == VIR_ARCH_I686) {
|
||||||
|
+ int hasSVM = cpuHasFeature(data, "svm");
|
||||||
|
+ if (hasSVM < 0)
|
||||||
|
goto cleanup;
|
||||||
|
+ *hasHwVirt = hasSVM > 0 ? true : false;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (cpu->mode != VIR_CPU_MODE_CUSTOM &&
|
||||||
|
- !migrating &&
|
||||||
|
- cpuUpdate(cpu, host) < 0)
|
||||||
|
+ if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
|
||||||
|
+ const char *mode = virCPUModeTypeToString(cpu->mode);
|
||||||
|
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_HOST)) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
+ _("CPU mode '%s' is not supported by QEMU"
|
||||||
|
+ " binary"), mode);
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+ if (def->virtType != VIR_DOMAIN_VIRT_KVM) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
+ _("CPU mode '%s' is only supported with kvm"),
|
||||||
|
+ mode);
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+ virBufferAddLit(buf, "host");
|
||||||
|
+ } else {
|
||||||
|
+ if (VIR_ALLOC(guest) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
+ if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
- cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||||
|
- switch (cmp) {
|
||||||
|
- case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||||
|
- if (compare_msg) {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
- _("guest and host CPU are not compatible: %s"),
|
||||||
|
- compare_msg);
|
||||||
|
- } else {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
- _("guest CPU is not compatible with host CPU"));
|
||||||
|
- }
|
||||||
|
- /* fall through */
|
||||||
|
- case VIR_CPU_COMPARE_ERROR:
|
||||||
|
+ guest->arch = host->arch;
|
||||||
|
+ if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||||
|
+ preferred = host->model;
|
||||||
|
+ else
|
||||||
|
+ preferred = cpu->model;
|
||||||
|
+
|
||||||
|
+ guest->type = VIR_CPU_TYPE_GUEST;
|
||||||
|
+ guest->fallback = cpu->fallback;
|
||||||
|
+ if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
- default:
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
+ virBufferAdd(buf, guest->model, -1);
|
||||||
|
+ if (guest->vendor_id)
|
||||||
|
+ virBufferAsprintf(buf, ",vendor=%s", guest->vendor_id);
|
||||||
|
+ for (i = 0; i < guest->nfeatures; i++) {
|
||||||
|
+ char sign;
|
||||||
|
+ if (guest->features[i].policy == VIR_CPU_FEATURE_DISABLE)
|
||||||
|
+ sign = '-';
|
||||||
|
+ else
|
||||||
|
+ sign = '+';
|
||||||
|
|
||||||
|
- /* Only 'svm' requires --enable-nesting. The nested
|
||||||
|
- * 'vmx' patches now simply hook off the CPU features
|
||||||
|
- */
|
||||||
|
- if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||||
|
- def->os.arch == VIR_ARCH_I686) {
|
||||||
|
- int hasSVM = cpuHasFeature(data, "svm");
|
||||||
|
- if (hasSVM < 0)
|
||||||
|
- goto cleanup;
|
||||||
|
- *hasHwVirt = hasSVM > 0 ? true : false;
|
||||||
|
+ virBufferAsprintf(buf, ",%c%s", sign, guest->features[i].name);
|
||||||
|
}
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
|
||||||
|
- const char *mode = virCPUModeTypeToString(cpu->mode);
|
||||||
|
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_HOST)) {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
- _("CPU mode '%s' is not supported by QEMU"
|
||||||
|
- " binary"), mode);
|
||||||
|
- goto cleanup;
|
||||||
|
- }
|
||||||
|
- if (def->virtType != VIR_DOMAIN_VIRT_KVM) {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
- _("CPU mode '%s' is only supported with kvm"),
|
||||||
|
- mode);
|
||||||
|
- goto cleanup;
|
||||||
|
- }
|
||||||
|
- virBufferAddLit(&buf, "host");
|
||||||
|
- } else {
|
||||||
|
- if (VIR_ALLOC(guest) < 0)
|
||||||
|
- goto cleanup;
|
||||||
|
- if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||||
|
- goto cleanup;
|
||||||
|
+ ret = 0;
|
||||||
|
+cleanup:
|
||||||
|
+ virObjectUnref(caps);
|
||||||
|
+ VIR_FREE(compare_msg);
|
||||||
|
+ cpuDataFree(data);
|
||||||
|
+ virCPUDefFree(guest);
|
||||||
|
+ virCPUDefFree(cpu);
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
|
||||||
|
- guest->arch = host->arch;
|
||||||
|
- if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||||
|
- preferred = host->model;
|
||||||
|
- else
|
||||||
|
- preferred = cpu->model;
|
||||||
|
+static int
|
||||||
|
+qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||||
|
+ const virDomainDef *def,
|
||||||
|
+ const char *emulator,
|
||||||
|
+ virQEMUCapsPtr qemuCaps,
|
||||||
|
+ virArch hostarch,
|
||||||
|
+ char **opt,
|
||||||
|
+ bool *hasHwVirt,
|
||||||
|
+ bool migrating)
|
||||||
|
+{
|
||||||
|
+ const char *default_model;
|
||||||
|
+ bool have_cpu = false;
|
||||||
|
+ int ret = -1;
|
||||||
|
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
|
+ size_t i;
|
||||||
|
|
||||||
|
- guest->type = VIR_CPU_TYPE_GUEST;
|
||||||
|
- guest->fallback = cpu->fallback;
|
||||||
|
- if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||||
|
- goto cleanup;
|
||||||
|
+ *hasHwVirt = false;
|
||||||
|
|
||||||
|
- virBufferAdd(&buf, guest->model, -1);
|
||||||
|
- if (guest->vendor_id)
|
||||||
|
- virBufferAsprintf(&buf, ",vendor=%s", guest->vendor_id);
|
||||||
|
- for (i = 0; i < guest->nfeatures; i++) {
|
||||||
|
- char sign;
|
||||||
|
- if (guest->features[i].policy == VIR_CPU_FEATURE_DISABLE)
|
||||||
|
- sign = '-';
|
||||||
|
- else
|
||||||
|
- sign = '+';
|
||||||
|
+ if (def->os.arch == VIR_ARCH_I686)
|
||||||
|
+ default_model = "qemu32";
|
||||||
|
+ else
|
||||||
|
+ default_model = "qemu64";
|
||||||
|
|
||||||
|
- virBufferAsprintf(&buf, ",%c%s", sign, guest->features[i].name);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ if (def->cpu &&
|
||||||
|
+ (def->cpu->mode != VIR_CPU_MODE_CUSTOM || def->cpu->model)) {
|
||||||
|
+ if (qemuBuildCpuModelArgStr(driver, def, &buf, qemuCaps,
|
||||||
|
+ hasHwVirt, migrating) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
have_cpu = true;
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
@@ -6309,11 +6332,6 @@ qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
- VIR_FREE(compare_msg);
|
||||||
|
- cpuDataFree(data);
|
||||||
|
- virCPUDefFree(guest);
|
||||||
|
- virCPUDefFree(cpu);
|
||||||
|
- virObjectUnref(caps);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
536
0002-qemu-Don-t-compare-CPU-against-host-for-TCG.patch
Normal file
536
0002-qemu-Don-t-compare-CPU-against-host-for-TCG.patch
Normal file
@ -0,0 +1,536 @@
|
|||||||
|
From fe13df3feab361cd7596e67af87ad1ca2c4158c5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cole Robinson <crobinso@redhat.com>
|
||||||
|
Date: Tue, 23 Sep 2014 13:07:09 -0400
|
||||||
|
Subject: [PATCH] qemu: Don't compare CPU against host for TCG
|
||||||
|
|
||||||
|
Right now when building the qemu command line, we try to do various
|
||||||
|
unconditional validations of the guest CPU against the host CPU. However
|
||||||
|
this checks are overly applied. The only time we should use the checks
|
||||||
|
are:
|
||||||
|
|
||||||
|
- The user requests host-model/host-passthrough, or
|
||||||
|
|
||||||
|
- When KVM is requsted. CPU features requested in TCG mode are always
|
||||||
|
emulated by qemu and are independent of the host CPU, so no host CPU
|
||||||
|
checks should be performed.
|
||||||
|
|
||||||
|
Right now if trying to specify a CPU for arm on an x86 host, it attempts
|
||||||
|
to do non-sensical validation and falls over.
|
||||||
|
|
||||||
|
Switch all the test cases that were intending to test CPU validation to
|
||||||
|
use KVM, so they continue to test the intended code.
|
||||||
|
|
||||||
|
Amend some aarch64 XML tests with a CPU model, to ensure things work
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
(cherry picked from commit cf7fce8f2fd1c930f357fd4ff93ac35f38eb30c6)
|
||||||
|
---
|
||||||
|
src/qemu/qemu_command.c | 68 +++++++++++++---------
|
||||||
|
.../qemuxml2argv-aarch64-virt-default-nic.args | 3 +-
|
||||||
|
.../qemuxml2argv-aarch64-virt-default-nic.xml | 3 +
|
||||||
|
.../qemuxml2argv-aarch64-virt-virtio.args | 3 +-
|
||||||
|
.../qemuxml2argv-aarch64-virt-virtio.xml | 3 +
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-exact1.args | 2 +-
|
||||||
|
tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml | 4 +-
|
||||||
|
.../qemuxml2argv-cpu-exact2-nofallback.args | 2 +-
|
||||||
|
.../qemuxml2argv-cpu-exact2-nofallback.xml | 4 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-exact2.args | 2 +-
|
||||||
|
tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml | 4 +-
|
||||||
|
.../qemuxml2argv-cpu-fallback.args | 2 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml | 4 +-
|
||||||
|
.../qemuxml2argv-cpu-minimum1.args | 2 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml | 4 +-
|
||||||
|
.../qemuxml2argv-cpu-minimum2.args | 2 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml | 4 +-
|
||||||
|
.../qemuxml2argv-cpu-nofallback.xml | 2 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-strict1.args | 2 +-
|
||||||
|
.../qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml | 4 +-
|
||||||
|
.../qemuxml2argv-graphics-spice-timeout.args | 2 +-
|
||||||
|
.../qemuxml2argv-graphics-spice-timeout.xml | 4 +-
|
||||||
|
.../qemuxml2argv-pseries-cpu-exact.args | 4 +-
|
||||||
|
tests/qemuxml2argvtest.c | 21 +++----
|
||||||
|
.../qemuxml2xmlout-graphics-spice-timeout.xml | 4 +-
|
||||||
|
25 files changed, 90 insertions(+), 69 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||||
|
index 96ba081..a3bcab9 100644
|
||||||
|
--- a/src/qemu/qemu_command.c
|
||||||
|
+++ b/src/qemu/qemu_command.c
|
||||||
|
@@ -6072,6 +6072,8 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
|
virCPUCompareResult cmp;
|
||||||
|
const char *preferred;
|
||||||
|
virCapsPtr caps = NULL;
|
||||||
|
+ bool compareAgainstHost = (def->virtType == VIR_DOMAIN_VIRT_KVM ||
|
||||||
|
+ def->cpu->mode != VIR_CPU_MODE_CUSTOM);
|
||||||
|
|
||||||
|
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
||||||
|
goto cleanup;
|
||||||
|
@@ -6094,30 +6096,33 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
|
cpuUpdate(cpu, host) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
- cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||||
|
- switch (cmp) {
|
||||||
|
- case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||||
|
- if (compare_msg) {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
- _("guest and host CPU are not compatible: %s"),
|
||||||
|
- compare_msg);
|
||||||
|
- } else {
|
||||||
|
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
- _("guest CPU is not compatible with host CPU"));
|
||||||
|
- }
|
||||||
|
- /* fall through */
|
||||||
|
- case VIR_CPU_COMPARE_ERROR:
|
||||||
|
- goto cleanup;
|
||||||
|
+ /* For non-KVM, CPU features are emulated, so host compat doesn't matter */
|
||||||
|
+ if (compareAgainstHost) {
|
||||||
|
+ cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||||
|
+ switch (cmp) {
|
||||||
|
+ case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||||
|
+ if (compare_msg) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
+ _("guest and host CPU are not compatible: %s"),
|
||||||
|
+ compare_msg);
|
||||||
|
+ } else {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
+ _("guest CPU is not compatible with host CPU"));
|
||||||
|
+ }
|
||||||
|
+ /* fall through */
|
||||||
|
+ case VIR_CPU_COMPARE_ERROR:
|
||||||
|
+ goto cleanup;
|
||||||
|
|
||||||
|
- default:
|
||||||
|
- break;
|
||||||
|
+ default:
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Only 'svm' requires --enable-nesting. The nested
|
||||||
|
* 'vmx' patches now simply hook off the CPU features
|
||||||
|
*/
|
||||||
|
- if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||||
|
- def->os.arch == VIR_ARCH_I686) {
|
||||||
|
+ if ((def->os.arch == VIR_ARCH_X86_64 || def->os.arch == VIR_ARCH_I686) &&
|
||||||
|
+ compareAgainstHost) {
|
||||||
|
int hasSVM = cpuHasFeature(data, "svm");
|
||||||
|
if (hasSVM < 0)
|
||||||
|
goto cleanup;
|
||||||
|
@@ -6145,16 +6150,23 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
|
if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
- guest->arch = host->arch;
|
||||||
|
- if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||||
|
- preferred = host->model;
|
||||||
|
- else
|
||||||
|
- preferred = cpu->model;
|
||||||
|
+ if (compareAgainstHost) {
|
||||||
|
+ guest->arch = host->arch;
|
||||||
|
+ if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||||
|
+ preferred = host->model;
|
||||||
|
+ else
|
||||||
|
+ preferred = cpu->model;
|
||||||
|
|
||||||
|
- guest->type = VIR_CPU_TYPE_GUEST;
|
||||||
|
- guest->fallback = cpu->fallback;
|
||||||
|
- if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||||
|
- goto cleanup;
|
||||||
|
+ guest->type = VIR_CPU_TYPE_GUEST;
|
||||||
|
+ guest->fallback = cpu->fallback;
|
||||||
|
+ if (cpuDecode(guest, data,
|
||||||
|
+ (const char **)cpus, ncpus, preferred) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
+ } else {
|
||||||
|
+ guest->arch = def->os.arch;
|
||||||
|
+ if (VIR_STRDUP(guest->model, cpu->model) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
virBufferAdd(buf, guest->model, -1);
|
||||||
|
if (guest->vendor_id)
|
||||||
|
@@ -6171,7 +6183,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
-cleanup:
|
||||||
|
+ cleanup:
|
||||||
|
virObjectUnref(caps);
|
||||||
|
VIR_FREE(compare_msg);
|
||||||
|
cpuDataFree(data);
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||||
|
index d4d403b..8cb57c5 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu-system-aarch64 -S -M virt -m 1024 -smp 1 -nographic \
|
||||||
|
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 \
|
||||||
|
+-m 1024 -smp 1 -nographic \
|
||||||
|
-nodefconfig -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||||
|
-boot c -kernel /aarch64.kernel -initrd /aarch64.initrd -append console=ttyAMA0 \
|
||||||
|
-usb -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||||
|
index 868de94..3a6f098 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||||
|
@@ -7,6 +7,9 @@
|
||||||
|
<features>
|
||||||
|
<acpi/>
|
||||||
|
</features>
|
||||||
|
+ <cpu match='exact'>
|
||||||
|
+ <model>cortex-a53</model>
|
||||||
|
+ </cpu>
|
||||||
|
<os>
|
||||||
|
<type arch="aarch64" machine="virt">hvm</type>
|
||||||
|
<kernel>/aarch64.kernel</kernel>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||||
|
index afd6e41..05f3629 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu-system-aarch64 -S -M virt -m 1024 -smp 1 -nographic \
|
||||||
|
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 \
|
||||||
|
+-m 1024 -smp 1 -nographic \
|
||||||
|
-nodefconfig -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||||
|
-boot c -kernel /aarch64.kernel -initrd /aarch64.initrd -append \
|
||||||
|
'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||||
|
index 184b62c..ad34615 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||||
|
@@ -16,6 +16,9 @@
|
||||||
|
<apic/>
|
||||||
|
<pae/>
|
||||||
|
</features>
|
||||||
|
+ <cpu match='exact'>
|
||||||
|
+ <model>cortex-a53</model>
|
||||||
|
+ </cpu>
|
||||||
|
<clock offset="utc"/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||||
|
index 76c2c48..0a58616 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu qemu64,-svm,-lm,-nx,-syscall,-clflush,-pse36,-mca -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-exact1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||||
|
index ddd9d5a..1d1e815 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -23,6 +23,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||||
|
index 0e37379..e46527b 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+ds_cpl,+tm,+ht,+ds,-nx -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-exact2-nofallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||||
|
index de4c8d2..6b9b7d4 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -30,6 +30,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||||
|
index 0e37379..e46527b 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+ds_cpl,+tm,+ht,+ds,-nx -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-exact2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||||
|
index e027e6f..eaea564 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -30,6 +30,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||||
|
index 4ee8391..ead561f 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||||
|
@@ -3,7 +3,7 @@ PATH=/bin \
|
||||||
|
HOME=/home/test \
|
||||||
|
USER=test \
|
||||||
|
LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu \
|
||||||
|
+/usr/bin/qemu-kvm \
|
||||||
|
-S \
|
||||||
|
-M pc \
|
||||||
|
-cpu Penryn,-sse4.1 \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||||
|
index 6125f41..85642e9 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -20,6 +20,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||||
|
index 0630ef4..d8207e7 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,\
|
||||||
|
+acpi,+ds -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-minimum1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||||
|
index 4ba5d0b..5879d35 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -16,6 +16,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||||
|
index 830994f..17ba256 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,\
|
||||||
|
+acpi,+ds,-lm,-nx,-syscall -m 214 -smp 6 -nographic -monitor \
|
||||||
|
unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net none -serial none \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||||
|
index c43bf4f..b8bbf25 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -20,6 +20,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||||
|
index 4ae0be8..abb0e9c 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||||
|
index 8b545a7..c500ef7 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||||
|
-/usr/bin/qemu -S -M pc \
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc \
|
||||||
|
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+est,+vmx,+ds_cpl,+tm,+ht,+acpi,+ds,-nx \
|
||||||
|
-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-strict1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||||
|
index 935f46f..a9fc9c5 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219100</memory>
|
||||||
|
@@ -33,6 +33,6 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||||
|
index 48744b2..8b5d9ee 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=spice \
|
||||||
|
-/usr/bin/qemu -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,\
|
||||||
|
+/usr/bin/qemu-kvm -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,\
|
||||||
|
+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,+acpi,+ds \
|
||||||
|
-m 1024 -smp 2 -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||||
|
-boot dc -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||||
|
index e6ecbed..3ed864c 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>f14</name>
|
||||||
|
<uuid>553effab-b5e1-2d80-dfe3-da4344826c43</uuid>
|
||||||
|
<memory unit='KiB'>1048576</memory>
|
||||||
|
@@ -38,7 +38,7 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>restart</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='qcow2'/>
|
||||||
|
<source file='/var/lib/libvirt/images/f14.img'/>
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||||
|
index 1e09680..9927294 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \
|
||||||
|
-/usr/bin/qemu-system-ppc64 -S -M pseries -cpu POWER7_v2.3 -m 512 -smp 1 -nographic \
|
||||||
|
--nodefconfig -nodefaults \
|
||||||
|
+QEMU_AUDIO_DRV=none /usr/bin/qemu-system-ppc64 -S -M pseries -cpu POWER7_v2.3 \
|
||||||
|
+-m 512 -smp 1 -nographic -nodefconfig -nodefaults \
|
||||||
|
-chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait \
|
||||||
|
-mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -usb \
|
||||||
|
-chardev pty,id=charserial0 \
|
||||||
|
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
|
||||||
|
index 3feb2fe..e649aa5 100644
|
||||||
|
--- a/tests/qemuxml2argvtest.c
|
||||||
|
+++ b/tests/qemuxml2argvtest.c
|
||||||
|
@@ -920,7 +920,7 @@ mymain(void)
|
||||||
|
QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE,
|
||||||
|
QEMU_CAPS_DEVICE_QXL);
|
||||||
|
DO_TEST("graphics-spice-timeout",
|
||||||
|
- QEMU_CAPS_DRIVE,
|
||||||
|
+ QEMU_CAPS_KVM, QEMU_CAPS_DRIVE,
|
||||||
|
QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL,
|
||||||
|
QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE,
|
||||||
|
QEMU_CAPS_DEVICE_QXL_VGA);
|
||||||
|
@@ -1192,14 +1192,14 @@ mymain(void)
|
||||||
|
DO_TEST("cpu-topology1", QEMU_CAPS_SMP_TOPOLOGY);
|
||||||
|
DO_TEST("cpu-topology2", QEMU_CAPS_SMP_TOPOLOGY);
|
||||||
|
DO_TEST("cpu-topology3", NONE);
|
||||||
|
- DO_TEST("cpu-minimum1", NONE);
|
||||||
|
- DO_TEST("cpu-minimum2", NONE);
|
||||||
|
- DO_TEST("cpu-exact1", NONE);
|
||||||
|
- DO_TEST("cpu-exact2", NONE);
|
||||||
|
- DO_TEST("cpu-exact2-nofallback", NONE);
|
||||||
|
- DO_TEST("cpu-fallback", NONE);
|
||||||
|
- DO_TEST_FAILURE("cpu-nofallback", NONE);
|
||||||
|
- DO_TEST("cpu-strict1", NONE);
|
||||||
|
+ DO_TEST("cpu-minimum1", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-minimum2", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-exact1", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-exact2", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-exact2-nofallback", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-fallback", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST_FAILURE("cpu-nofallback", QEMU_CAPS_KVM);
|
||||||
|
+ DO_TEST("cpu-strict1", QEMU_CAPS_KVM);
|
||||||
|
DO_TEST("cpu-numa1", NONE);
|
||||||
|
DO_TEST("cpu-numa2", QEMU_CAPS_SMP_TOPOLOGY);
|
||||||
|
DO_TEST_PARSE_ERROR("cpu-numa3", NONE);
|
||||||
|
@@ -1284,7 +1284,8 @@ mymain(void)
|
||||||
|
DO_TEST("pseries-usb-kbd", QEMU_CAPS_PCI_OHCI,
|
||||||
|
QEMU_CAPS_DEVICE_USB_KBD, QEMU_CAPS_CHARDEV,
|
||||||
|
QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
|
||||||
|
- DO_TEST_FAILURE("pseries-cpu-exact", QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
|
||||||
|
+ DO_TEST("pseries-cpu-exact", QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE,
|
||||||
|
+ QEMU_CAPS_NODEFCONFIG);
|
||||||
|
DO_TEST("disk-ide-drive-split",
|
||||||
|
QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG,
|
||||||
|
QEMU_CAPS_IDE_CD);
|
||||||
|
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||||
|
index 44c4cf7..73ebcab 100644
|
||||||
|
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||||
|
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-<domain type='qemu'>
|
||||||
|
+<domain type='kvm'>
|
||||||
|
<name>f14</name>
|
||||||
|
<uuid>553effab-b5e1-2d80-dfe3-da4344826c43</uuid>
|
||||||
|
<memory unit='KiB'>1048576</memory>
|
||||||
|
@@ -38,7 +38,7 @@
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>restart</on_crash>
|
||||||
|
<devices>
|
||||||
|
- <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='qcow2'/>
|
||||||
|
<source file='/var/lib/libvirt/images/f14.img'/>
|
13
libvirt.spec
13
libvirt.spec
@ -363,7 +363,7 @@
|
|||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 1.2.9
|
Version: 1.2.9
|
||||||
Release: 1%{?dist}%{?extra_release}
|
Release: 2%{?dist}%{?extra_release}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
@ -374,6 +374,10 @@ URL: http://libvirt.org/
|
|||||||
%endif
|
%endif
|
||||||
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
||||||
|
|
||||||
|
# Fix specifying CPU for qemu aarch64
|
||||||
|
Patch0001: 0001-qemu_command-Split-qemuBuildCpuArgStr.patch
|
||||||
|
Patch0002: 0002-qemu-Don-t-compare-CPU-against-host-for-TCG.patch
|
||||||
|
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
Requires: libvirt-daemon = %{version}-%{release}
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
%if %{with_network}
|
%if %{with_network}
|
||||||
@ -1198,6 +1202,10 @@ driver
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
|
# Fix specifying CPU for qemu aarch64
|
||||||
|
%patch0001 -p1
|
||||||
|
%patch0002 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if ! %{with_xen}
|
%if ! %{with_xen}
|
||||||
%define _without_xen --without-xen
|
%define _without_xen --without-xen
|
||||||
@ -2274,6 +2282,9 @@ exit 0
|
|||||||
%doc examples/systemtap
|
%doc examples/systemtap
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 03 2014 Cole Robinson <crobinso@redhat.com> - 1.2.9-2
|
||||||
|
- Fix specifying CPU for qemu aarch64
|
||||||
|
|
||||||
* Wed Sep 24 2014 Cole Robinson <crobinso@redhat.com> - 1.2.8-6
|
* Wed Sep 24 2014 Cole Robinson <crobinso@redhat.com> - 1.2.8-6
|
||||||
- Fix labelling host devices (bz #1145968)
|
- Fix labelling host devices (bz #1145968)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user