]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: refactor 'virDomainResctrlVcpuMatch' and some code cleanup
authorWang Huaqiang <huaqiang.wang@intel.com>
Tue, 11 Jun 2019 03:31:10 +0000 (11:31 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 5 Aug 2019 17:41:12 +0000 (19:41 +0200)
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>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c

index 08df300b592583580c5946224a80080f6a87c1d1..b9ce01cbbb912f96ef72e032aff79c1d64b65d05 100644 (file)
@@ -19045,7 +19045,7 @@ virDomainResctrlParseVcpus(virDomainDefPtr def,
 static int
 virDomainResctrlVcpuMatch(virDomainDefPtr def,
                           virBitmapPtr vcpus,
-                          virResctrlAllocPtr *alloc)
+                          virDomainResctrlDefPtr *resctrl)
 {
     ssize_t i = 0;
 
@@ -19054,7 +19054,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)) {
@@ -19385,18 +19385,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;
@@ -19571,7 +19571,6 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
     ssize_t i = 0;
     int n;
     int ret = -1;
-    bool new_alloc = false;
 
     ctxt->node = node;
 
@@ -19587,13 +19586,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++) {
@@ -19608,7 +19608,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;