[PATCH 4/6] hyperv: implement domainGetMaxVcpus

Matt Coleman mcoleman at datto.com
Thu Nov 12 11:51:56 UTC 2020


Co-authored-by: Sri Ramanujam <sramanujam at datto.com>
Signed-off-by: Matt Coleman <matt at datto.com>
---
 src/hyperv/hyperv_driver.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 3c436d9465..0e35f18430 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -42,6 +42,11 @@
 
 VIR_LOG_INIT("hyperv.hyperv_driver");
 
+/*
+ * Forward declarations
+ */
+static int hypervDomainIsActive(virDomainPtr domain);
+
 /*
  * WMI utility functions
  *
@@ -1184,6 +1189,16 @@ hypervDomainGetVcpus(virDomainPtr domain,
 }
 
 
+static int
+hypervDomainGetMaxVcpus(virDomainPtr dom)
+{
+    if (hypervDomainIsActive(dom))
+        return hypervDomainGetVcpusFlags(dom, (VIR_DOMAIN_VCPU_LIVE | VIR_DOMAIN_VCPU_MAXIMUM));
+    else
+        return hypervConnectGetMaxVcpus(dom->conn, NULL);
+}
+
+
 static char *
 hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
 {
@@ -1983,6 +1998,7 @@ static virHypervisorDriver hypervHypervisorDriver = {
     .domainGetState = hypervDomainGetState, /* 0.9.5 */
     .domainGetVcpusFlags = hypervDomainGetVcpusFlags, /* 6.10.0 */
     .domainGetVcpus = hypervDomainGetVcpus, /* 6.10.0 */
+    .domainGetMaxVcpus = hypervDomainGetMaxVcpus, /* 6.10.0 */
     .domainGetXMLDesc = hypervDomainGetXMLDesc, /* 0.9.5 */
     .connectListDefinedDomains = hypervConnectListDefinedDomains, /* 0.9.5 */
     .connectNumOfDefinedDomains = hypervConnectNumOfDefinedDomains, /* 0.9.5 */
-- 
2.27.0





More information about the libvir-list mailing list