qemu requires that the topology equals to the maximum vcpu count. Document this along with the API to set maximum vcpu count and the XML element. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1426220 --- docs/formatdomain.html.in | 5 ++++- src/libvirt-domain.c | 3 ++- tools/virsh.pod | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index aae5e9c07..b1e38f00e 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -1401,7 +1401,10 @@ virtual CPU provided to the guest. Three non-zero values have to be given for <code>sockets</code>, <code>cores</code>, and <code>threads</code>: total number of CPU sockets, number of cores per - socket, and number of threads per core, respectively.</dd> + socket, and number of threads per core, respectively. Hypervisors may + require that the maximum number of vCPUs specified by the + <code>cpus</code> element equals to the number of vcpus resulting + from the topology.</dd> <dt><code>feature</code></dt> <dd>The <code>cpu</code> element can contain zero or more diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 4670c54e5..310b91b37 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -7010,7 +7010,8 @@ virDomainSetVcpus(virDomainPtr domain, unsigned int nvcpus) * CPU limit is altered; generally, this value must be less than or * equal to virConnectGetMaxVcpus(). Otherwise, this call affects the * current virtual CPU limit, which must be less than or equal to the - * maximum limit. + * maximum limit. Note that hypervisors may not allow changing the maximum + * vcpu count if processor topology is specified. * * If @flags includes VIR_DOMAIN_VCPU_GUEST, then the state of processors is * modified inside the guest instead of the hypervisor. This flag can only diff --git a/tools/virsh.pod b/tools/virsh.pod index 9a52d6716..d1030808a 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -2477,7 +2477,8 @@ marked as hotpluggable. The I<--maximum> flag controls the maximum number of virtual cpus that can be hot-plugged the next time the domain is booted. As such, it must only be used with the I<--config> flag, and not with the I<--live> or the I<--current> -flag. +flag. Note that it may not be possible to change the maximum vcpu count if +the processor topology is specified for the guest. =item B<setvcpu> I<domain> I<vcpulist> [I<--enable>] | [I<--disable>] [[I<--live>] [I<--config>] | [I<--current>]] -- 2.12.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list