[libvirt] [PATCH 1/3] Memory: Use consistent type for all memory elements.

Prerna Saxena prerna at linux.vnet.ibm.com
Wed Nov 5 10:58:27 UTC 2014


>From 4b3e336ea045759758b04440d75802e990506e2b Mon Sep 17 00:00:00 2001
From: Prerna Saxena <prerna at linux.vnet.ibm.com>
Date: Fri, 31 Oct 2014 16:07:21 +0530

Domain memory elements such as max_balloon and cur_balloon are
implemented as 'unsigned long long', whereas the 'memory' element
in NUMA cells is implemented as 'unsigned int'.

Use the same data type (unsigned long long) for 'memory' element
in NUMA cells.

Signed-off-by: Prerna Saxena <prerna at linux.vnet.ibm.com>
---
 src/conf/cpu_conf.c     | 4 ++--
 src/conf/cpu_conf.h     | 2 +-
 src/qemu/qemu_command.c | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 9b7fbb0..5475c07 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -496,7 +496,7 @@ virCPUDefParseXML(xmlNodePtr node,
                 goto error;
             }
 
-            ret = virStrToLong_ui(memory, NULL, 10, &def->cells[cur_cell].mem);
+            ret = virStrToLong_ull(memory, NULL, 10, &def->cells[cur_cell].mem);
             if (ret == -1) {
                 virReportError(VIR_ERR_XML_ERROR, "%s",
                                _("Invalid 'memory' attribute in NUMA cell"));
@@ -702,7 +702,7 @@ virCPUDefFormatBuf(virBufferPtr buf,
             virBufferAddLit(buf, "<cell");
             virBufferAsprintf(buf, " id='%zu'", i);
             virBufferAsprintf(buf, " cpus='%s'", def->cells[i].cpustr);
-            virBufferAsprintf(buf, " memory='%d'", def->cells[i].mem);
+            virBufferAsprintf(buf, " memory='%llu'", def->cells[i].mem);
             if (memAccess)
                 virBufferAsprintf(buf, " memAccess='%s'",
                                   virMemAccessTypeToString(memAccess));
diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h
index d45210b..5bcf101 100644
--- a/src/conf/cpu_conf.h
+++ b/src/conf/cpu_conf.h
@@ -105,7 +105,7 @@ typedef virCellDef *virCellDefPtr;
 struct _virCellDef {
     virBitmapPtr cpumask; /* CPUs that are part of this node */
     char *cpustr;         /* CPUs stored in string form for dumpxml */
-    unsigned int mem;     /* Node memory in kB */
+    unsigned long long mem;     /* Node memory in kB */
     virMemAccess memAccess;
 };
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 917639e..13b54dd 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6693,7 +6693,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
     }
 
     for (i = 0; i < def->cpu->ncells; i++) {
-        int cellmem = VIR_DIV_UP(def->cpu->cells[i].mem, 1024);
+        unsigned long long cellmem = VIR_DIV_UP(def->cpu->cells[i].mem, 1024);
         def->cpu->cells[i].mem = cellmem * 1024;
         virMemAccess memAccess = def->cpu->cells[i].memAccess;
 
@@ -6799,7 +6799,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
                 virBufferAddLit(&buf, "memory-backend-ram");
             }
 
-            virBufferAsprintf(&buf, ",size=%dM,id=ram-node%zu", cellmem, i);
+            virBufferAsprintf(&buf, ",size=%lluM,id=ram-node%zu", cellmem, i);
 
             if (virDomainNumatuneMaybeFormatNodeset(def->numatune, nodeset,
                                                     &nodemask, i) < 0)
@@ -6849,7 +6849,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
             virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) {
             virBufferAsprintf(&buf, ",memdev=ram-node%zu", i);
         } else {
-            virBufferAsprintf(&buf, ",mem=%d", cellmem);
+            virBufferAsprintf(&buf, ",mem=%llu", cellmem);
         }
 
         virCommandAddArgBuffer(cmd, &buf);
-- 
1.9.3


-- 
Prerna Saxena

Linux Technology Centre,
IBM Systems and Technology Lab,
Bangalore, India




More information about the libvir-list mailing list