Get cpu time and current memory balloon from libxl

This commit is contained in:
Markus Groß 2011-03-21 10:35:51 +01:00 committed by Jim Fehlig
parent f44bfb7fb9
commit d1c8c8d438

View File

@ -1069,6 +1069,7 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
{ {
libxlDriverPrivatePtr driver = dom->conn->privateData; libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm; virDomainObjPtr vm;
libxl_dominfo d_info;
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
@ -1081,10 +1082,21 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
goto cleanup; goto cleanup;
} }
info->state = vm->state; if (!virDomainObjIsActive(vm)) {
info->cpuTime = 0; info->cpuTime = 0;
info->maxMem = vm->def->mem.max_balloon;
info->memory = vm->def->mem.cur_balloon; 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->maxMem = vm->def->mem.max_balloon;
info->nrVirtCpu = vm->def->vcpus; info->nrVirtCpu = vm->def->vcpus;
ret = 0; ret = 0;