Commit 3f71c797689a4a70 added 'qemu_id' field to track the id of the cpu
as reported by query-cpus. The patch did not include changes necessary
to propagate the id through the functions matching the data to the
libvirt cpu structures and thus all vcpus had id 0.
---
src/qemu/qemu_monitor.c | 3 +++
.../qemumonitorjson-cpuinfo-ppc64-basic.data | 8 ++++++++
.../qemumonitorjson-cpuinfo-ppc64-hotplug-1.data | 16 +++++++++++++++
.../qemumonitorjson-cpuinfo-ppc64-hotplug-2.data | 24 ++++++++++++++++++++++
.../qemumonitorjson-cpuinfo-ppc64-hotplug-4.data | 24 ++++++++++++++++++++++
.../qemumonitorjson-cpuinfo-ppc64-no-threads.data | 8 ++++++++
...emumonitorjson-cpuinfo-x86-basic-pluggable.data | 5 +++++
.../qemumonitorjson-cpuinfo-x86-full.data | 11 ++++++++++
tests/qemumonitorjsontest.c | 3 +++
9 files changed, 102 insertions(+)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 3ff31e4..3f86887 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1672,6 +1672,7 @@ qemuMonitorCPUInfoClear(qemuMonitorCPUInfoPtr cpus,
for (i = 0; i < ncpus; i++) {
cpus[i].id = 0;
+ cpus[i].qemu_id = -1;
cpus[i].socket_id = -1;
cpus[i].core_id = -1;
cpus[i].thread_id = -1;
@@ -1729,6 +1730,7 @@ qemuMonitorGetCPUInfoLegacy(struct qemuMonitorQueryCpusEntry
*cpuentries,
if (i < ncpuentries) {
vcpus[i].tid = cpuentries[i].tid;
vcpus[i].halted = cpuentries[i].halted;
+ vcpus[i].qemu_id = cpuentries[i].qemu_id;
}
/* for legacy hotplug to work we need to fake the vcpu count added by
@@ -1866,6 +1868,7 @@ qemuMonitorGetCPUInfoHotplug(struct
qemuMonitorQueryHotpluggableCpusEntry *hotpl
}
}
+ vcpus[anyvcpu].qemu_id = cpuentries[j].qemu_id;
vcpus[anyvcpu].tid = cpuentries[j].tid;
vcpus[anyvcpu].halted = cpuentries[j].halted;
}
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
index 9969648..eaa797c 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='21925'
enable-id='1'
+ query-cpus-id='0'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[1]'
topology: core='0' vcpus='8'
@@ -10,30 +11,37 @@
online=yes
hotpluggable=no
thread-id='21926'
+ query-cpus-id='1'
[vcpu libvirt-id='2']
online=yes
hotpluggable=no
thread-id='21927'
+ query-cpus-id='2'
[vcpu libvirt-id='3']
online=yes
hotpluggable=no
thread-id='21928'
+ query-cpus-id='3'
[vcpu libvirt-id='4']
online=yes
hotpluggable=no
thread-id='21930'
+ query-cpus-id='4'
[vcpu libvirt-id='5']
online=yes
hotpluggable=no
thread-id='21931'
+ query-cpus-id='5'
[vcpu libvirt-id='6']
online=yes
hotpluggable=no
thread-id='21932'
+ query-cpus-id='6'
[vcpu libvirt-id='7']
online=yes
hotpluggable=no
thread-id='21933'
+ query-cpus-id='7'
[vcpu libvirt-id='8']
online=no
hotpluggable=yes
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
index 643f6ec..a0aca86 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='21925'
enable-id='1'
+ query-cpus-id='0'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[1]'
topology: core='0' vcpus='8'
@@ -10,35 +11,43 @@
online=yes
hotpluggable=no
thread-id='21926'
+ query-cpus-id='1'
[vcpu libvirt-id='2']
online=yes
hotpluggable=no
thread-id='21927'
+ query-cpus-id='2'
[vcpu libvirt-id='3']
online=yes
hotpluggable=no
thread-id='21928'
+ query-cpus-id='3'
[vcpu libvirt-id='4']
online=yes
hotpluggable=no
thread-id='21930'
+ query-cpus-id='4'
[vcpu libvirt-id='5']
online=yes
hotpluggable=no
thread-id='21931'
+ query-cpus-id='5'
[vcpu libvirt-id='6']
online=yes
hotpluggable=no
thread-id='21932'
+ query-cpus-id='6'
[vcpu libvirt-id='7']
online=yes
hotpluggable=no
thread-id='21933'
+ query-cpus-id='7'
[vcpu libvirt-id='8']
online=yes
hotpluggable=yes
thread-id='22131'
enable-id='2'
+ query-cpus-id='8'
type='host-spapr-cpu-core'
alias='vcpu0'
qom_path='/machine/peripheral/vcpu0'
@@ -47,30 +56,37 @@
online=yes
hotpluggable=yes
thread-id='22132'
+ query-cpus-id='9'
[vcpu libvirt-id='10']
online=yes
hotpluggable=yes
thread-id='22133'
+ query-cpus-id='10'
[vcpu libvirt-id='11']
online=yes
hotpluggable=yes
thread-id='22134'
+ query-cpus-id='11'
[vcpu libvirt-id='12']
online=yes
hotpluggable=yes
thread-id='22135'
+ query-cpus-id='12'
[vcpu libvirt-id='13']
online=yes
hotpluggable=yes
thread-id='22136'
+ query-cpus-id='13'
[vcpu libvirt-id='14']
online=yes
hotpluggable=yes
thread-id='22137'
+ query-cpus-id='14'
[vcpu libvirt-id='15']
online=yes
hotpluggable=yes
thread-id='22138'
+ query-cpus-id='15'
[vcpu libvirt-id='16']
online=no
hotpluggable=yes
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
index 43780ee..7a367ce 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='21925'
enable-id='1'
+ query-cpus-id='0'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[1]'
topology: core='0' vcpus='8'
@@ -10,35 +11,43 @@
online=yes
hotpluggable=no
thread-id='21926'
+ query-cpus-id='1'
[vcpu libvirt-id='2']
online=yes
hotpluggable=no
thread-id='21927'
+ query-cpus-id='2'
[vcpu libvirt-id='3']
online=yes
hotpluggable=no
thread-id='21928'
+ query-cpus-id='3'
[vcpu libvirt-id='4']
online=yes
hotpluggable=no
thread-id='21930'
+ query-cpus-id='4'
[vcpu libvirt-id='5']
online=yes
hotpluggable=no
thread-id='21931'
+ query-cpus-id='5'
[vcpu libvirt-id='6']
online=yes
hotpluggable=no
thread-id='21932'
+ query-cpus-id='6'
[vcpu libvirt-id='7']
online=yes
hotpluggable=no
thread-id='21933'
+ query-cpus-id='7'
[vcpu libvirt-id='8']
online=yes
hotpluggable=yes
thread-id='22131'
enable-id='2'
+ query-cpus-id='8'
type='host-spapr-cpu-core'
alias='vcpu0'
qom_path='/machine/peripheral/vcpu0'
@@ -47,35 +56,43 @@
online=yes
hotpluggable=yes
thread-id='22132'
+ query-cpus-id='9'
[vcpu libvirt-id='10']
online=yes
hotpluggable=yes
thread-id='22133'
+ query-cpus-id='10'
[vcpu libvirt-id='11']
online=yes
hotpluggable=yes
thread-id='22134'
+ query-cpus-id='11'
[vcpu libvirt-id='12']
online=yes
hotpluggable=yes
thread-id='22135'
+ query-cpus-id='12'
[vcpu libvirt-id='13']
online=yes
hotpluggable=yes
thread-id='22136'
+ query-cpus-id='13'
[vcpu libvirt-id='14']
online=yes
hotpluggable=yes
thread-id='22137'
+ query-cpus-id='14'
[vcpu libvirt-id='15']
online=yes
hotpluggable=yes
thread-id='22138'
+ query-cpus-id='15'
[vcpu libvirt-id='16']
online=yes
hotpluggable=yes
thread-id='22223'
enable-id='3'
+ query-cpus-id='16'
type='host-spapr-cpu-core'
alias='vcpu1'
qom_path='/machine/peripheral/vcpu1'
@@ -84,27 +101,34 @@
online=yes
hotpluggable=yes
thread-id='22224'
+ query-cpus-id='17'
[vcpu libvirt-id='18']
online=yes
hotpluggable=yes
thread-id='22225'
+ query-cpus-id='18'
[vcpu libvirt-id='19']
online=yes
hotpluggable=yes
thread-id='22226'
+ query-cpus-id='19'
[vcpu libvirt-id='20']
online=yes
hotpluggable=yes
thread-id='22227'
+ query-cpus-id='20'
[vcpu libvirt-id='21']
online=yes
hotpluggable=yes
thread-id='22228'
+ query-cpus-id='21'
[vcpu libvirt-id='22']
online=yes
hotpluggable=yes
thread-id='22229'
+ query-cpus-id='22'
[vcpu libvirt-id='23']
online=yes
hotpluggable=yes
thread-id='22230'
+ query-cpus-id='23'
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
index dfa2d3f..7c90889 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='21925'
enable-id='1'
+ query-cpus-id='0'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[1]'
topology: core='0' vcpus='8'
@@ -10,35 +11,43 @@
online=yes
hotpluggable=no
thread-id='21926'
+ query-cpus-id='1'
[vcpu libvirt-id='2']
online=yes
hotpluggable=no
thread-id='21927'
+ query-cpus-id='2'
[vcpu libvirt-id='3']
online=yes
hotpluggable=no
thread-id='21928'
+ query-cpus-id='3'
[vcpu libvirt-id='4']
online=yes
hotpluggable=no
thread-id='21930'
+ query-cpus-id='4'
[vcpu libvirt-id='5']
online=yes
hotpluggable=no
thread-id='21931'
+ query-cpus-id='5'
[vcpu libvirt-id='6']
online=yes
hotpluggable=no
thread-id='21932'
+ query-cpus-id='6'
[vcpu libvirt-id='7']
online=yes
hotpluggable=no
thread-id='21933'
+ query-cpus-id='7'
[vcpu libvirt-id='8']
online=yes
hotpluggable=yes
thread-id='23170'
enable-id='3'
+ query-cpus-id='16'
type='host-spapr-cpu-core'
alias='vcpu0'
qom_path='/machine/peripheral/vcpu0'
@@ -47,35 +56,43 @@
online=yes
hotpluggable=yes
thread-id='23171'
+ query-cpus-id='17'
[vcpu libvirt-id='10']
online=yes
hotpluggable=yes
thread-id='23172'
+ query-cpus-id='18'
[vcpu libvirt-id='11']
online=yes
hotpluggable=yes
thread-id='23173'
+ query-cpus-id='19'
[vcpu libvirt-id='12']
online=yes
hotpluggable=yes
thread-id='23174'
+ query-cpus-id='20'
[vcpu libvirt-id='13']
online=yes
hotpluggable=yes
thread-id='23175'
+ query-cpus-id='21'
[vcpu libvirt-id='14']
online=yes
hotpluggable=yes
thread-id='23176'
+ query-cpus-id='22'
[vcpu libvirt-id='15']
online=yes
hotpluggable=yes
thread-id='23177'
+ query-cpus-id='23'
[vcpu libvirt-id='16']
online=yes
hotpluggable=yes
thread-id='22741'
enable-id='2'
+ query-cpus-id='8'
type='host-spapr-cpu-core'
alias='vcpu1'
qom_path='/machine/peripheral/vcpu1'
@@ -84,27 +101,34 @@
online=yes
hotpluggable=yes
thread-id='22742'
+ query-cpus-id='9'
[vcpu libvirt-id='18']
online=yes
hotpluggable=yes
thread-id='22743'
+ query-cpus-id='10'
[vcpu libvirt-id='19']
online=yes
hotpluggable=yes
thread-id='22744'
+ query-cpus-id='11'
[vcpu libvirt-id='20']
online=yes
hotpluggable=yes
thread-id='22745'
+ query-cpus-id='12'
[vcpu libvirt-id='21']
online=yes
hotpluggable=yes
thread-id='22746'
+ query-cpus-id='13'
[vcpu libvirt-id='22']
online=yes
hotpluggable=yes
thread-id='22747'
+ query-cpus-id='14'
[vcpu libvirt-id='23']
online=yes
hotpluggable=yes
thread-id='22748'
+ query-cpus-id='15'
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
index 2519ad3..2612fa6 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='35232'
enable-id='1'
+ query-cpus-id='0'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[1]'
topology: core='0' vcpus='1'
@@ -11,6 +12,7 @@
hotpluggable=no
thread-id='35233'
enable-id='2'
+ query-cpus-id='1'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[2]'
topology: core='8' vcpus='1'
@@ -19,6 +21,7 @@
hotpluggable=no
thread-id='35234'
enable-id='3'
+ query-cpus-id='2'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[3]'
topology: core='16' vcpus='1'
@@ -27,6 +30,7 @@
hotpluggable=no
thread-id='35235'
enable-id='4'
+ query-cpus-id='3'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[4]'
topology: core='24' vcpus='1'
@@ -35,6 +39,7 @@
hotpluggable=no
thread-id='35236'
enable-id='5'
+ query-cpus-id='4'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[5]'
topology: core='32' vcpus='1'
@@ -43,6 +48,7 @@
hotpluggable=no
thread-id='35237'
enable-id='6'
+ query-cpus-id='5'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[6]'
topology: core='40' vcpus='1'
@@ -51,6 +57,7 @@
hotpluggable=no
thread-id='35238'
enable-id='7'
+ query-cpus-id='6'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[7]'
topology: core='48' vcpus='1'
@@ -59,6 +66,7 @@
hotpluggable=no
thread-id='35239'
enable-id='8'
+ query-cpus-id='7'
type='host-spapr-cpu-core'
qom_path='/machine/unattached/device[8]'
topology: core='56' vcpus='1'
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
index 1fea077..93cefb9 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='518291'
enable-id='1'
+ query-cpus-id='0'
type='qemu64-x86_64-cpu'
qom_path='/machine/unattached/device[0]'
topology: socket='0' core='0' thread='0' vcpus='1'
@@ -11,6 +12,7 @@
hotpluggable=no
thread-id='518292'
enable-id='2'
+ query-cpus-id='1'
type='qemu64-x86_64-cpu'
qom_path='/machine/unattached/device[2]'
topology: socket='0' core='0' thread='1' vcpus='1'
@@ -19,6 +21,7 @@
hotpluggable=no
thread-id='518294'
enable-id='3'
+ query-cpus-id='2'
type='qemu64-x86_64-cpu'
qom_path='/machine/unattached/device[3]'
topology: socket='0' core='1' thread='0' vcpus='1'
@@ -27,6 +30,7 @@
hotpluggable=no
thread-id='518295'
enable-id='4'
+ query-cpus-id='3'
type='qemu64-x86_64-cpu'
qom_path='/machine/unattached/device[4]'
topology: socket='0' core='1' thread='1' vcpus='1'
@@ -35,6 +39,7 @@
hotpluggable=no
thread-id='518296'
enable-id='5'
+ query-cpus-id='4'
type='qemu64-x86_64-cpu'
qom_path='/machine/unattached/device[5]'
topology: socket='1' core='0' thread='0' vcpus='1'
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
index c827892..1908e39 100644
--- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
@@ -3,6 +3,7 @@
hotpluggable=no
thread-id='895040'
enable-id='1'
+ query-cpus-id='0'
type='Broadwell-x86_64-cpu'
qom_path='/machine/unattached/device[0]'
topology: socket='0' core='0' thread='0' vcpus='1'
@@ -11,6 +12,7 @@
hotpluggable=yes
thread-id='895056'
enable-id='2'
+ query-cpus-id='1'
type='Broadwell-x86_64-cpu'
alias='vcpu1'
qom_path='/machine/peripheral/vcpu1'
@@ -20,6 +22,7 @@
hotpluggable=yes
thread-id='895057'
enable-id='3'
+ query-cpus-id='2'
type='Broadwell-x86_64-cpu'
alias='vcpu2'
qom_path='/machine/peripheral/vcpu2'
@@ -29,6 +32,7 @@
hotpluggable=yes
thread-id='895058'
enable-id='4'
+ query-cpus-id='3'
type='Broadwell-x86_64-cpu'
alias='vcpu3'
qom_path='/machine/peripheral/vcpu3'
@@ -38,6 +42,7 @@
hotpluggable=yes
thread-id='895059'
enable-id='5'
+ query-cpus-id='4'
type='Broadwell-x86_64-cpu'
alias='vcpu4'
qom_path='/machine/peripheral/vcpu4'
@@ -47,6 +52,7 @@
hotpluggable=yes
thread-id='895060'
enable-id='6'
+ query-cpus-id='5'
type='Broadwell-x86_64-cpu'
alias='vcpu5'
qom_path='/machine/peripheral/vcpu5'
@@ -56,6 +62,7 @@
hotpluggable=yes
thread-id='895061'
enable-id='7'
+ query-cpus-id='6'
type='Broadwell-x86_64-cpu'
alias='vcpu6'
qom_path='/machine/peripheral/vcpu6'
@@ -65,6 +72,7 @@
hotpluggable=yes
thread-id='895062'
enable-id='8'
+ query-cpus-id='7'
type='Broadwell-x86_64-cpu'
alias='vcpu7'
qom_path='/machine/peripheral/vcpu7'
@@ -74,6 +82,7 @@
hotpluggable=yes
thread-id='895063'
enable-id='9'
+ query-cpus-id='8'
type='Broadwell-x86_64-cpu'
alias='vcpu8'
qom_path='/machine/peripheral/vcpu8'
@@ -83,6 +92,7 @@
hotpluggable=yes
thread-id='895064'
enable-id='10'
+ query-cpus-id='9'
type='Broadwell-x86_64-cpu'
alias='vcpu9'
qom_path='/machine/peripheral/vcpu9'
@@ -92,6 +102,7 @@
hotpluggable=yes
thread-id='895065'
enable-id='11'
+ query-cpus-id='10'
type='Broadwell-x86_64-cpu'
alias='vcpu10'
qom_path='/machine/peripheral/vcpu10'
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index a60f0a0..a7d4d5a 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2491,6 +2491,9 @@ testQemuMonitorCPUInfoFormat(qemuMonitorCPUInfoPtr vcpus,
if (vcpu->id != 0)
virBufferAsprintf(&buf, "enable-id='%d'\n",
vcpu->id);
+ if (vcpu->qemu_id != -1)
+ virBufferAsprintf(&buf, "query-cpus-id='%d'\n",
vcpu->qemu_id);
+
if (vcpu->type)
virBufferAsprintf(&buf, "type='%s'\n", vcpu->type);
--
2.10.2