From 387935345c54c586dad323290b46fa122e52f2b0 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 22 Jun 2009 16:35:03 +0000 Subject: [PATCH] Fix memory reporting for inactive domains in the qemu driver. Currently, 'info' will always report that mem = max mem. Make sure we actually return the correct mem value. --- ChangeLog | 8 ++++++++ src/qemu_driver.c | 24 +++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28c3fe6eaf..e462c5e233 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Jun 22 12:33:37 EDT 2009 Cole Robinson + + * src/qemu_driver.c: Fix memory reporting for inactive domains + in the qemu driver. + +Currently, 'info' will always report that mem = max mem. Make sure we +actually return the correct mem value. + Mon Jun 22 12:31:38 EDT 2009 Cole Robinson * src/storage_backend_fs.c src/storage_driver.c: diff --git a/src/qemu_driver.c b/src/qemu_driver.c index d3eb3adafd..4e3e531b4e 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;