[libvirt] [PATCHv2 05/11] conf: refactor 'virDomainResctrlVcpuMatch' and some code cleanup

Wang Huaqiang posted 11 patches 22 weeks ago

[libvirt] [PATCHv2 05/11] conf: refactor 'virDomainResctrlVcpuMatch' and some code cleanup

Posted by Wang Huaqiang 22 weeks ago
Let 'virDomainResctrlVcpuMatch' to retrieve a pointer of
virDomainResctrlDefPtr in its third parameter instead
of virResctrlAllocPtr, if @vcpus is matched with the vcpus
of some resctrl allocation in list of @def->resctrls.

Signed-off-by: Wang Huaqiang <huaqiang.wang@intel.com>
---
 src/conf/domain_conf.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e4a6dfb..ca2dba9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -18992,7 +18992,7 @@ virDomainResctrlParseVcpus(virDomainDefPtr def,
 static int
 virDomainResctrlVcpuMatch(virDomainDefPtr def,
                           virBitmapPtr vcpus,
-                          virResctrlAllocPtr *alloc)
+                          virDomainResctrlDefPtr *resctrl)
 {
     ssize_t i = 0;
 
@@ -19001,7 +19001,7 @@ virDomainResctrlVcpuMatch(virDomainDefPtr def,
          * Just updating memory allocation information of that group
          */
         if (virBitmapEqual(def->resctrls[i]->vcpus, vcpus)) {
-            *alloc = virObjectRef(def->resctrls[i]->alloc);
+            *resctrl = def->resctrls[i];
             break;
         }
         if (virBitmapOverlaps(def->resctrls[i]->vcpus, vcpus)) {
@@ -19332,18 +19332,18 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
         return -1;
     }
 
-    if (virDomainResctrlVcpuMatch(def, vcpus, &alloc) < 0)
+    if (virDomainResctrlVcpuMatch(def, vcpus, &resctrl) < 0)
         return -1;
 
-    if (!alloc) {
-        if (!(alloc = virResctrlAllocNew()))
-            return -1;
-    } else {
+    if (resctrl) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
                        _("Identical vcpus in cachetunes found"));
         return -1;
     }
 
+    if (!(alloc = virResctrlAllocNew()))
+        return -1;
+
     for (i = 0; i < n; i++) {
         if (virDomainCachetuneDefParseCache(ctxt, nodes[i], alloc) < 0)
             return -1;
@@ -19518,7 +19518,6 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
     ssize_t i = 0;
     int n;
     int ret = -1;
-    bool new_alloc = false;
 
     ctxt->node = node;
 
@@ -19534,13 +19533,14 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
         return -1;
     }
 
-    if (virDomainResctrlVcpuMatch(def, vcpus, &alloc) < 0)
+    if (virDomainResctrlVcpuMatch(def, vcpus, &resctrl) < 0)
         return -1;
 
-    if (!alloc) {
+    if (resctrl) {
+        alloc = virObjectRef(resctrl->alloc);
+    } else {
         if (!(alloc = virResctrlAllocNew()))
             return -1;
-        new_alloc = true;
     }
 
     for (i = 0; i < n; i++) {
@@ -19555,7 +19555,7 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
      * If this is a new allocation, format ID and append to resctrl, otherwise
      * just update the existing alloc information, which is done in above
      * virDomainMemorytuneDefParseMemory */
-    if (new_alloc) {
+    if (!resctrl) {
         if (!(resctrl = virDomainResctrlNew(node, alloc, vcpus, flags)))
             return -1;
 
-- 
2.7.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list