]> xenbits.xensource.com Git - libvirt.git/commitdiff
Get cpu time and current memory balloon from libxl
authorMarkus Groß <gross@univention.de>
Mon, 21 Mar 2011 09:35:51 +0000 (10:35 +0100)
committerJim Fehlig <jfehlig@novell.com>
Thu, 24 Mar 2011 19:34:44 +0000 (13:34 -0600)
src/libxl/libxl_driver.c

index 254c75ffb94d712a77d5963df534c38693c9c3bd..4f7e931a9668cc542d8e0a5c4dd81cedda7fa00b 100644 (file)
@@ -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;