[libvirt] [PATCH] Fix memory reporting for inactive domains in the qemu driver.

Cole Robinson crobinso at redhat.com
Thu Jun 18 16:35:39 UTC 2009


Currently, 'info' will always report that mem = max mem. Make sure we
actually return the correct mem value.

Signed-off-by: Cole Robinson <crobinso at redhat.com>
---
 src/qemu_driver.c |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index d3eb3ad..4e3e531 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -2553,16 +2553,22 @@ static int qemudDomainGetInfo(virDomainPtr dom,
         }
     }
 
-    err = qemudDomainGetMemoryBalloon(dom->conn, vm, &balloon);
-    if (err < 0)
-        goto cleanup;
-
     info->maxMem = vm->def->maxmem;
-    if (err == 0)
-        /* Balloon not supported, so maxmem is always the allocation */
-        info->memory = vm->def->maxmem;
-    else
-        info->memory = balloon;
+
+    if (virDomainIsActive(vm)) {
+        err = qemudDomainGetMemoryBalloon(dom->conn, vm, &balloon);
+        if (err < 0)
+            goto cleanup;
+
+        if (err == 0)
+            /* Balloon not supported, so maxmem is always the allocation */
+            info->memory = vm->def->maxmem;
+        else
+            info->memory = balloon;
+    } else {
+        info->memory = vm->def->memory;
+    }
+
     info->nrVirtCpu = vm->def->vcpus;
     ret = 0;
 
-- 
1.6.0.6




More information about the libvir-list mailing list