qemuDomainHelperGetVcpus would correctly return an array of
virVcpuInfoPtr structs for online vcpus even for sparse topologies, but
the loop that fills the returned typed parameters would number the vcpus
incorrectly. Fortunately sparse topologies aren't supported yet.
---
src/qemu/qemu_driver.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d1e5188..b1f94bd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18965,7 +18965,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
for (i = 0; i < virDomainDefGetVcpus(dom->def); i++) {
snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
- "vcpu.%zu.state", i);
+ "vcpu.%u.state", cpuinfo[i].number);
if (virTypedParamsAddInt(&record->params,
&record->nparams,
maxparams,
@@ -18978,7 +18978,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
continue;
snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
- "vcpu.%zu.time", i);
+ "vcpu.%u.time", cpuinfo[i].number);
if (virTypedParamsAddULLong(&record->params,
&record->nparams,
maxparams,
@@ -18986,7 +18986,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
cpuinfo[i].cpuTime) < 0)
goto cleanup;
snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
- "vcpu.%zu.wait", i);
+ "vcpu.%u.wait", cpuinfo[i].number);
if (virTypedParamsAddULLong(&record->params,
&record->nparams,
maxparams,
--
2.6.2