[PATCH 19/24] qemu: command: Unify retrieval of NUMA cell count in qemuBuildNumaArgStr

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

 



The function uses the cell count in 6 places. Add a temp variable to
hold the count as it will greatly simplify the refactor.
---
 src/qemu/qemu_command.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 8b660f0..65d8874 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7118,6 +7118,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
     bool needBackend = false;
     int rc;
     int ret = -1;
+    size_t ncells = def->cpu->ncells;
     const long system_page_size = virGetSystemPageSizeKB();

     if (virDomainNumatuneHasPerNodeBinding(def->numa) &&
@@ -7150,10 +7151,10 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
             continue;
         }

-        if (def->cpu->ncells) {
+        if (ncells) {
             /* Fortunately, we allow only guest NUMA nodes to be continuous
              * starting from zero. */
-            pos = def->cpu->ncells - 1;
+            pos = ncells - 1;
         }

         next_bit = virBitmapNextSetBit(def->mem.hugepages[i].nodemask, pos);
@@ -7165,12 +7166,12 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
         }
     }

-    if (VIR_ALLOC_N(nodeBackends, def->cpu->ncells) < 0)
+    if (VIR_ALLOC_N(nodeBackends, ncells) < 0)
         goto cleanup;

     /* using of -numa memdev= cannot be combined with -numa mem=, thus we
      * need to check which approach to use */
-    for (i = 0; i < def->cpu->ncells; i++) {
+    for (i = 0; i < ncells; i++) {
         unsigned long long cellmem = VIR_DIV_UP(def->cpu->cells[i].mem, 1024);
         def->cpu->cells[i].mem = cellmem * 1024;

@@ -7193,7 +7194,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
         }
     }

-    for (i = 0; i < def->cpu->ncells; i++) {
+    for (i = 0; i < ncells; i++) {
         VIR_FREE(cpumask);
         if (!(cpumask = virBitmapFormat(def->cpu->cells[i].cpumask)))
             goto cleanup;
@@ -7232,7 +7233,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
     VIR_FREE(cpumask);

     if (nodeBackends) {
-        for (i = 0; i < def->cpu->ncells; i++)
+        for (i = 0; i < ncells; i++)
             VIR_FREE(nodeBackends[i]);

         VIR_FREE(nodeBackends);
-- 
2.2.2

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




[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]