[libvirt] [PATCH] qemu: Check for maximum vcpus exceeding cpu topology

Peter Krempa pkrempa at redhat.com
Tue Feb 7 13:11:35 UTC 2017


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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170207/47a063f0/attachment-0001.sig>


More information about the libvir-list mailing list