Comments.
Replace vzDomObjFromDomain/virObjectUnlock pair
to vzDomObjFromDomainRef/virDomainObjEndAPI as we
use prlsdkGetStatsParam. See previous statistics
comments.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
int v, maxcpu, hostcpus;
int ret = -1;
- if (!(privdom = vzDomObjFromDomain(domain)))
+ if (!(privdom = vzDomObjFromDomainRef(domain)))
goto cleanup;
if (!virDomainObjIsActive(privdom)) {
for (i = 0; i < maxinfo; i++) {
info[i].number = i;
info[i].state = VIR_VCPU_RUNNING;
+ if (prlsdkGetVcpuStats(privdom, i, &info[i].cpuTime) < 0)
+ goto cleanup;
}
}
if (cpumaps != NULL) {
cleanup:
if (privdom)
- virObjectUnlock(privdom);
+ virDomainObjEndAPI(&privdom);
return ret;
}
return ret;
}
+
+int
+prlsdkGetVcpuStats(virDomainObjPtr dom, int idx, unsigned long long *vtime)
+{
+ char *name = NULL;
+ long long ptime = 0;
+ int ret = -1;
+
+ if (virAsprintf(&name, "guest.vcpu%u.time", (unsigned int)idx) < 0)
+ goto cleanup;
+ if (prlsdkGetStatsParam(dom, name, &ptime) < 0)
+ goto cleanup;
+ *vtime = ptime == -1 ? 0 : ptime;
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(name);
+ return ret;
+}
prlsdkDetachNet(virDomainObjPtr dom, vzConnPtr privconn, virDomainNetDefPtr net);
int
prlsdkGetNetStats(virDomainObjPtr dom, const char *path, virDomainInterfaceStatsPtr stats);
+int
+prlsdkGetVcpuStats(virDomainObjPtr dom, int idx, unsigned long long *time);