[PATCH v1 2/3] qemu_driver: Implement qemuDomainSetVcpuTuneParameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux