From: Hyman Huang <yong.huang@xxxxxxxxxx> Support hotplug/hotunplug of virtual CPU by wrapping the existing interface qemuDomainSetVcpu. Signed-off-by: Hyman Huang <yong.huang@xxxxxxxxxx> --- include/libvirt/libvirt-domain.h | 12 ++++++++++++ src/qemu/qemu_driver.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h index ae1e07b7b6..16e3140e09 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -6612,6 +6612,18 @@ virDomainGraphicsReload(virDomainPtr domain, unsigned int type, unsigned int flags); +/* Virtual CPU set parameters */ + +/** + * VIR_DOMAIN_VCPU_STATE: + * + * The tunable enable/disable individual vcpus described by @vcpumap + * in the hypervisor* + * + * Since: 11.1.0 + */ +# define VIR_DOMAIN_VCPU_STATE "state" + /** * virDomainSetVcpuTuneParameters: * diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 772cb405d6..59d94c6dd6 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -20081,6 +20081,34 @@ qemuDomainGraphicsReload(virDomainPtr domain, return ret; } +static int +qemuDomainSetVcpuTuneParameters(virDomainPtr dom, + const char *vcpumap, + virTypedParameterPtr params, + int nparams, + unsigned int flags) +{ + int state; + int rc; + + if (virTypedParamsValidate(params, nparams, + VIR_DOMAIN_VCPU_STATE, + VIR_TYPED_PARAM_INT, + NULL) < 0) + return -1; + + if ((rc = virTypedParamsGetInt(params, nparams, + VIR_DOMAIN_VCPU_STATE, + &state)) < 0) + return -1; + + if (rc == 1) { + return qemuDomainSetVcpu(dom, vcpumap, state, flags); + } + + return 0; +} + static virHypervisorDriver qemuHypervisorDriver = { .name = QEMU_DRIVER_NAME, .connectURIProbe = qemuConnectURIProbe, @@ -20331,6 +20359,7 @@ static virHypervisorDriver qemuHypervisorDriver = { .domainSetLaunchSecurityState = qemuDomainSetLaunchSecurityState, /* 8.0.0 */ .domainFDAssociate = qemuDomainFDAssociate, /* 9.0.0 */ .domainGraphicsReload = qemuDomainGraphicsReload, /* 10.2.0 */ + .domainSetVcpuTuneParameters = qemuDomainSetVcpuTuneParameters, /* 11.1.0 */ }; -- 2.27.0