From c1cabe4130eaf51441aa6a3f5b688c2177218195 Mon Sep 17 00:00:00 2001
Message-Id: <c1cabe4130eaf51441aa6a3f5b688c2177218195@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 24 Aug 2016 16:11:28 -0400
Subject: [PATCH] tests: cpu-hotplug: Add data for ppc64 out-of-order hotplug
https://bugzilla.redhat.com/show_bug.cgi?id=1097930
https://bugzilla.redhat.com/show_bug.cgi?id=1224341
Test the algorithm that extracts the order in which the vcpu entries
were plugged in on a sample of data created by plugging in vcpus
arbitrarily.
(cherry picked from commit 1c455c4743796d2c977bfc1e999a233eeef1127f)
---
...mumonitorjson-cpuinfo-ppc64-hotplug-4-cpus.json | 221 +++++++++++++++++++++
...onitorjson-cpuinfo-ppc64-hotplug-4-hotplug.json | 29 +++
.../qemumonitorjson-cpuinfo-ppc64-hotplug-4.data | 62 ++++++
tests/qemumonitorjsontest.c | 1 +
4 files changed, 313 insertions(+)
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-cpus.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-hotplug.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-cpus.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-cpus.json
new file mode 100644
index 0000000..bcb6eab
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-cpus.json
@@ -0,0 +1,221 @@
+{
+ "return": [
+ {
+ "arch": "ppc",
+ "current": true,
+ "CPU": 0,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[0]",
+ "halted": false,
+ "thread_id": 21925
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 1,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[1]",
+ "halted": false,
+ "thread_id": 21926
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 2,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[2]",
+ "halted": false,
+ "thread_id": 21927
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 3,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[3]",
+ "halted": false,
+ "thread_id": 21928
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 4,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[4]",
+ "halted": false,
+ "thread_id": 21930
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 5,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[5]",
+ "halted": false,
+ "thread_id": 21931
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 6,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[6]",
+ "halted": false,
+ "thread_id": 21932
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 7,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/unattached/device[1]/thread[7]",
+ "halted": false,
+ "thread_id": 21933
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 8,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[0]",
+ "halted": false,
+ "thread_id": 22741
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 9,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[1]",
+ "halted": false,
+ "thread_id": 22742
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 10,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[2]",
+ "halted": false,
+ "thread_id": 22743
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 11,
+ "nip": -4611686018419474700,
+ "qom_path": "/machine/peripheral/vcpu1/thread[3]",
+ "halted": false,
+ "thread_id": 22744
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 12,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[4]",
+ "halted": false,
+ "thread_id": 22745
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 13,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[5]",
+ "halted": false,
+ "thread_id": 22746
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 14,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[6]",
+ "halted": false,
+ "thread_id": 22747
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 15,
+ "nip": -4611686018426772172,
+ "qom_path": "/machine/peripheral/vcpu1/thread[7]",
+ "halted": false,
+ "thread_id": 22748
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 16,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[0]",
+ "halted": true,
+ "thread_id": 23170
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 17,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[1]",
+ "halted": true,
+ "thread_id": 23171
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 18,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[2]",
+ "halted": true,
+ "thread_id": 23172
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 19,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[3]",
+ "halted": true,
+ "thread_id": 23173
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 20,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[4]",
+ "halted": true,
+ "thread_id": 23174
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 21,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[5]",
+ "halted": true,
+ "thread_id": 23175
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 22,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[6]",
+ "halted": true,
+ "thread_id": 23176
+ },
+ {
+ "arch": "ppc",
+ "current": false,
+ "CPU": 23,
+ "nip": 0,
+ "qom_path": "/machine/peripheral/vcpu0/thread[7]",
+ "halted": true,
+ "thread_id": 23177
+ }
+ ],
+ "id": "libvirt-37"
+}
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-hotplug.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-hotplug.json
new file mode 100644
index 0000000..ded2054
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4-hotplug.json
@@ -0,0 +1,29 @@
+{
+ "return": [
+ {
+ "props": {
+ "core-id": 16
+ },
+ "vcpus-count": 8,
+ "qom-path": "/machine/peripheral/vcpu1",
+ "type": "host-spapr-cpu-core"
+ },
+ {
+ "props": {
+ "core-id": 8
+ },
+ "vcpus-count": 8,
+ "qom-path": "/machine/peripheral/vcpu0",
+ "type": "host-spapr-cpu-core"
+ },
+ {
+ "props": {
+ "core-id": 0
+ },
+ "vcpus-count": 8,
+ "qom-path": "/machine/unattached/device[1]",
+ "type": "host-spapr-cpu-core"
+ }
+ ],
+ "id": "libvirt-38"
+}
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
new file mode 100644
index 0000000..22a425d
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
@@ -0,0 +1,62 @@
+[vcpu libvirt-id='0']
+ thread-id='21925'
+ qemu-id='1'
+ type='host-spapr-cpu-core'
+ qom_path='/machine/unattached/device[1]'
+ topology: core='0' vcpus='8'
+[vcpu libvirt-id='1']
+ thread-id='21926'
+[vcpu libvirt-id='2']
+ thread-id='21927'
+[vcpu libvirt-id='3']
+ thread-id='21928'
+[vcpu libvirt-id='4']
+ thread-id='21930'
+[vcpu libvirt-id='5']
+ thread-id='21931'
+[vcpu libvirt-id='6']
+ thread-id='21932'
+[vcpu libvirt-id='7']
+ thread-id='21933'
+[vcpu libvirt-id='8']
+ thread-id='23170'
+ qemu-id='3'
+ type='host-spapr-cpu-core'
+ alias='vcpu0'
+ qom_path='/machine/peripheral/vcpu0'
+ topology: core='8' vcpus='8'
+[vcpu libvirt-id='9']
+ thread-id='23171'
+[vcpu libvirt-id='10']
+ thread-id='23172'
+[vcpu libvirt-id='11']
+ thread-id='23173'
+[vcpu libvirt-id='12']
+ thread-id='23174'
+[vcpu libvirt-id='13']
+ thread-id='23175'
+[vcpu libvirt-id='14']
+ thread-id='23176'
+[vcpu libvirt-id='15']
+ thread-id='23177'
+[vcpu libvirt-id='16']
+ thread-id='22741'
+ qemu-id='2'
+ type='host-spapr-cpu-core'
+ alias='vcpu1'
+ qom_path='/machine/peripheral/vcpu1'
+ topology: core='16' vcpus='8'
+[vcpu libvirt-id='17']
+ thread-id='22742'
+[vcpu libvirt-id='18']
+ thread-id='22743'
+[vcpu libvirt-id='19']
+ thread-id='22744'
+[vcpu libvirt-id='20']
+ thread-id='22745'
+[vcpu libvirt-id='21']
+ thread-id='22746'
+[vcpu libvirt-id='22']
+ thread-id='22747'
+[vcpu libvirt-id='23']
+ thread-id='22748'
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 3cb7083..ddcbd78 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2590,6 +2590,7 @@ mymain(void)
DO_TEST_CPU_INFO("ppc64-basic", 24);
DO_TEST_CPU_INFO("ppc64-hotplug-1", 24);
DO_TEST_CPU_INFO("ppc64-hotplug-2", 24);
+ DO_TEST_CPU_INFO("ppc64-hotplug-4", 24);
qemuTestDriverFree(&driver);
--
2.10.0