From d1c8c8d4386a76c89d50e89b5a9ec1eb59c8f364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Gro=C3=9F?= Date: Mon, 21 Mar 2011 10:35:51 +0100 Subject: [PATCH] Get cpu time and current memory balloon from libxl --- src/libxl/libxl_driver.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 254c75ffb9..4f7e931a96 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1069,6 +1069,7 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) { libxlDriverPrivatePtr driver = dom->conn->privateData; virDomainObjPtr vm; + libxl_dominfo d_info; int ret = -1; libxlDriverLock(driver); @@ -1081,10 +1082,21 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) goto cleanup; } + if (!virDomainObjIsActive(vm)) { + info->cpuTime = 0; + info->memory = vm->def->mem.cur_balloon; + } else { + if (libxl_domain_info(&driver->ctx, &d_info, dom->id) != 0) { + libxlError(VIR_ERR_INTERNAL_ERROR, + _("libxl_domain_info failed for domain '%d'"), dom->id); + goto cleanup; + } + info->cpuTime = d_info.cpu_time; + info->memory = d_info.current_memkb; + } + info->state = vm->state; - info->cpuTime = 0; info->maxMem = vm->def->mem.max_balloon; - info->memory = vm->def->mem.cur_balloon; info->nrVirtCpu = vm->def->vcpus; ret = 0;