[libvirt] [PATCH 01/12] conf: numatune: Extract code for requesting memory nodeset from formatting

Peter Krempa pkrempa at redhat.com
Wed Jan 28 10:30:26 UTC 2015


Extract the logic to determine which nodeset has to be used for a domain
from the formatting step so that it can be reused separately when the
nodeset is used in a different way.
---
 src/conf/numatune_conf.c | 33 ++++++++++++++++++++++++++-------
 src/conf/numatune_conf.h |  5 +++++
 src/libvirt_private.syms |  1 +
 3 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/src/conf/numatune_conf.c b/src/conf/numatune_conf.c
index ad928e0..16610ed 100644
--- a/src/conf/numatune_conf.c
+++ b/src/conf/numatune_conf.c
@@ -400,13 +400,14 @@ virDomainNumatuneFormatNodeset(virDomainNumatunePtr numatune,
                                                        cellid));
 }

+
 int
-virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
-                                    virBitmapPtr auto_nodeset,
-                                    char **mask,
-                                    int cellid)
+virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+                                 virBitmapPtr auto_nodeset,
+                                 virBitmapPtr *retNodeset,
+                                 int cellid)
 {
-    *mask = NULL;
+    *retNodeset = NULL;

     if (!numatune)
         return 0;
@@ -424,8 +425,26 @@ virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
         return -1;
     }

-    *mask = virDomainNumatuneFormatNodeset(numatune, auto_nodeset, cellid);
-    if (!*mask)
+    *retNodeset = virDomainNumatuneGetNodeset(numatune, auto_nodeset, cellid);
+
+    return 0;
+}
+
+
+int
+virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
+                                    virBitmapPtr auto_nodeset,
+                                    char **mask,
+                                    int cellid)
+{
+    virBitmapPtr nodeset;
+
+    if (virDomainNumatuneMaybeGetNodeset(numatune, auto_nodeset, &nodeset,
+                                         cellid) < 0)
+        return -1;
+
+    if (nodeset &&
+        !(*mask = virBitmapFormat(nodeset)))
         return -1;

     return 0;
diff --git a/src/conf/numatune_conf.h b/src/conf/numatune_conf.h
index 7ca7f97..28c4ce2 100644
--- a/src/conf/numatune_conf.h
+++ b/src/conf/numatune_conf.h
@@ -70,6 +70,11 @@ virBitmapPtr virDomainNumatuneGetNodeset(virDomainNumatunePtr numatune,
                                          virBitmapPtr auto_nodeset,
                                          int cellid);

+int virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+                                     virBitmapPtr auto_nodeset,
+                                     virBitmapPtr *retNodeset,
+                                     int cellid);
+
 /*
  * Formatters
  */
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 75a6d83..2bbce03 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -625,6 +625,7 @@ virDomainNumatuneGetNodeset;
 virDomainNumatuneHasPerNodeBinding;
 virDomainNumatuneHasPlacementAuto;
 virDomainNumatuneMaybeFormatNodeset;
+virDomainNumatuneMaybeGetNodeset;
 virDomainNumatuneMemModeTypeFromString;
 virDomainNumatuneMemModeTypeToString;
 virDomainNumatuneNodesetIsAvailable;
-- 
2.2.2




More information about the libvir-list mailing list