[libvirt] [PATCH] qemu: Error out if setting vcpu count would lead to invalid config

Martin Kletzander mkletzan at redhat.com
Wed Apr 27 15:36:06 UTC 2016


On Wed, Apr 27, 2016 at 04:48:43PM +0200, Peter Krempa wrote:
>When the domain definition describes a machine with NUMA, setting the
>maximum vCPU count via the API might lead to an invalid config.
>
>Add a check that will forbid this until we add more advanced cpu config
>capabilities.
>
>Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1327499
>---
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_driver.c   | 7 +++++++
> 2 files changed, 8 insertions(+)
>
>diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
>index ad5c382..769bdb7 100644
>--- a/src/libvirt_private.syms
>+++ b/src/libvirt_private.syms
>@@ -673,6 +673,7 @@ virNodeDeviceObjUnlock;
> virDomainNumaCheckABIStability;
> virDomainNumaEquals;
> virDomainNumaFree;
>+virDomainNumaGetCPUCountTotal;
> virDomainNumaGetMaxCPUID;
> virDomainNumaGetMemorySize;
> virDomainNumaGetNodeCount;
>diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>index 542d13c..44ec42d 100644
>--- a/src/qemu/qemu_driver.c
>+++ b/src/qemu/qemu_driver.c
>@@ -4898,6 +4898,13 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
>
>     if (persistentDef) {
>         if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
>+            if (virDomainNumaGetCPUCountTotal(persistentDef->numa) > nvcpus) {
>+                virReportError(VIR_ERR_INVALID_ARG, "%s",
>+                               _("Number of CPUs in <numa> exceeds the desired "
>+                                 "maximum vcpu count"));
>+                goto endjob;
>+            }
>+

We should probably make sure that maxcpus == numacpus.  But that's for
the future.  ACK to this one.

>             if (virDomainDefSetVcpusMax(persistentDef, nvcpus) < 0)
>                 goto endjob;
>         } else {
>--
>2.8.1
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160427/5460e0ec/attachment-0001.sig>


More information about the libvir-list mailing list