All we need is the virCgroupPtr and number of vcpupids.
This will allow the function to be moved to util/vircgroup.c.
---
src/qemu/qemu_driver.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 1d08951..da976b3 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15992,22 +15992,22 @@ qemuDomainGetMetadata(virDomainPtr dom,
* s3 = t03 + t13
*/
static int
-getSumVcpuPercpuStats(virDomainObjPtr vm,
+getSumVcpuPercpuStats(virCgroupPtr group,
+ unsigned int nvcpupids,
unsigned long long *sum_cpu_time,
unsigned int num)
{
int ret = -1;
size_t i;
char *buf = NULL;
- qemuDomainObjPrivatePtr priv = vm->privateData;
virCgroupPtr group_vcpu = NULL;
- for (i = 0; i < priv->nvcpupids; i++) {
+ for (i = 0; i < nvcpupids; i++) {
char *pos;
unsigned long long tmp;
size_t j;
- if (virCgroupNewVcpu(priv->cgroup, i, false, &group_vcpu) < 0)
+ if (virCgroupNewVcpu(group, i, false, &group_vcpu) < 0)
goto cleanup;
if (virCgroupGetCpuacctPercpuUsage(group_vcpu, &buf) < 0)
@@ -16035,11 +16035,12 @@ getSumVcpuPercpuStats(virDomainObjPtr vm,
}
static int
-qemuDomainGetPercpuStats(virDomainObjPtr vm,
+qemuDomainGetPercpuStats(virCgroupPtr group,
virTypedParameterPtr params,
unsigned int nparams,
int start_cpu,
- unsigned int ncpus)
+ unsigned int ncpus,
+ unsigned int nvcpupids)
{
int rv = -1;
size_t i;
@@ -16049,7 +16050,6 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
unsigned long long *sum_cpu_time = NULL;
unsigned long long *sum_cpu_pos;
unsigned int n = 0;
- qemuDomainObjPrivatePtr priv = vm->privateData;
virTypedParameterPtr ent;
int param_idx;
unsigned long long cpu_time;
@@ -16076,7 +16076,7 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
}
/* we get percpu cputime accounting info. */
- if (virCgroupGetCpuacctPercpuUsage(priv->cgroup, &buf))
+ if (virCgroupGetCpuacctPercpuUsage(group, &buf))
goto cleanup;
pos = buf;
@@ -16113,7 +16113,7 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
if (VIR_ALLOC_N(sum_cpu_time, n) < 0)
goto cleanup;
- if (getSumVcpuPercpuStats(vm, sum_cpu_time, n) < 0)
+ if (getSumVcpuPercpuStats(group, nvcpupids, sum_cpu_time, n) < 0)
goto cleanup;
sum_cpu_pos = sum_cpu_time;
@@ -16177,8 +16177,8 @@ qemuDomainGetCPUStats(virDomainPtr domain,
ret = virCgroupGetDomainTotalCpuStats(priv->cgroup,
params, nparams);
else
- ret = qemuDomainGetPercpuStats(vm, params, nparams,
- start_cpu, ncpus);
+ ret = qemuDomainGetPercpuStats(priv->cgroup, params, nparams,
+ start_cpu, ncpus, priv->nvcpupids);
cleanup:
if (vm)
virObjectUnlock(vm);
--
1.8.3.2