On Tue, Feb 07, 2017 at 07:56:29 -0500, Kothapally Madhu Pavan wrote:
This patch will prevent guest to start when the maximum
vcpus are greater than cpu topology limit. Currently similar
checks do exist only during setvcpus. The patch adds the
missing check. The c9cb35c255222 reverted similar check to
avoid older configs from vanishing. The current patch adds
it in domain validation part to be consistent with the
original intent.
Signed-off-by: Kothapally Madhu Pavan <kmp(a)linux.vnet.ibm.com>
---
src/qemu/qemu_process.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 184440d..f0d42b8 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3738,6 +3738,13 @@ qemuValidateCpuCount(virDomainDefPtr def,
return -1;
}
+ if (def->cpu->sockets && virDomainDefGetVcpusMax(def) >
+ def->cpu->sockets * def->cpu->cores * def->cpu->threads) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Maximum CPUs greater than topology limit"));
+ return -1;
+ }
This exact logic is done in qemuDomainDefValidate:
+ if (virDomainDefGetVcpusTopology(def, &topologycpus) == 0 &&
+ topologycpus != virDomainDefGetVcpusMax(def)) {
+ /* presence of query-hotpluggable-cpus should be a good enough witness */
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("CPU topology doesn't match maximum vcpu
count"));
+ goto cleanup;
}
}
See commit 043ba4a40a4ae26cf616146d0d1c129d65b156b8. The only difference
is that the code is validated only for certain versions of qemu known to
reject such configuration.
Is that not enough?
Peter