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

Michal Privoznik mprivozn at redhat.com
Wed Nov 5 15:10:39 UTC 2014


On 05.11.2014 11:58, Prerna Saxena wrote:
>
>>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);
>

ACKed & pushed as this doesn't depend on the rest of the patches.

Michal




More information about the libvir-list mailing list