On Thu, Sep 29, 2016 at 16:29:13 +0530, Shivaprasad G Bhat wrote: > > On 09/21/2016 05:19 PM, Peter Krempa wrote: > > Implement support for VIR_DOMAIN_VCPU_HOTPLUGGABLE so that users can > > choose to make vcpus added by the API removable. > > --- > > src/qemu/qemu_driver.c | 22 ++++++++++++++++------ > > 1 file changed, 16 insertions(+), 6 deletions(-) > > > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > > index 357be4e..8453628 100644 > > --- a/src/qemu/qemu_driver.c > > +++ b/src/qemu/qemu_driver.c > > @@ -4912,7 +4912,8 @@ qemuDomainSetVcpusLive(virQEMUDriverPtr driver, > > */ > > static void > > qemuDomainSetVcpusConfig(virDomainDefPtr def, > > - unsigned int nvcpus) > > + unsigned int nvcpus, > > + bool hotpluggable) > > { > > virDomainVcpuDefPtr vcpu; > Here if (curvcpus == nvcpus) > > return > we still need to allow if someone wants to switch from hotpluggable > = yes to no/ vice versa. No. As no new vcpus were added there's nothing to turn to hotpluggable. The flag turns only the newly added vcpus as hotpluggable. > > > > size_t curvcpus = virDomainDefGetVcpus(def); > > @@ -4933,7 +4934,12 @@ qemuDomainSetVcpusConfig(virDomainDefPtr def, > > continue; > > > > vcpu->online = true; > > - vcpu->hotpluggable = VIR_TRISTATE_BOOL_NO; > > + if (hotpluggable) { > > + vcpu->hotpluggable = VIR_TRISTATE_BOOL_YES; > > + def->individualvcpus = true; > > + } else { > > + vcpu->hotpluggable = VIR_TRISTATE_BOOL_NO; > > + } > > > > if (++curvcpus == nvcpus) > > break; > > Can we add checks here to see on PPC, the config is valid with a check > when topology is given in xml to see (curvcpus%threads_per_core == 0) No. For PPC and all the weird archs that don't have thread level hotplug we can't really know what to use and what is a legitimate configuration until we start the VM and query qemu. > Otherwise with virsh setvcpus rhel71 13 --config --hotpluggable > for a guest with topology <topology sockets='8' cores='2' threads='4'/> > we would see, > 2016-09-29 10:12:05.929+0000: 1137: error : > qemuProcessValidateHotpluggableVcpus:4829 : unsupported configuration: > vcpus '12' and '13' are in the same hotplug group but differ in > configuration Yes, you can configure the same thing manually in the XML. > > OR > > Even when setvcpus live to a number not leading to a complete core, we > have checks leading to sensible error (error: unsupported configuration: > target vm vcpu granularity does not allow the desired vcpu count ) . So, > in case of --config also may be we can add the check to bring the > consistency. As said above. Libvirt can't surely detect that the "weird" approach is needed. Peter
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list