During review it was reported that adding at least 11 vcpus creates a collision of prefixes in the monitor matching algorithm. Add a test case to verify that the problem won't happen. --- .../qemumonitorjson-cpuinfo-x86-full-cpus.json | 104 +++++++++++++++++++ .../qemumonitorjson-cpuinfo-x86-full-hotplug.json | 115 +++++++++++++++++++++ .../qemumonitorjson-cpuinfo-x86-full.data | 76 ++++++++++++++ tests/qemumonitorjsontest.c | 1 + 4 files changed, 296 insertions(+) create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-cpus.json create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-hotplug.json create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-cpus.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-cpus.json new file mode 100644 index 0000000..16f5cc4 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-cpus.json @@ -0,0 +1,104 @@ +{ + "return": [ + { + "arch": "x86", + "current": true, + "CPU": 0, + "qom_path": "/machine/unattached/device[0]", + "pc": 1042686, + "halted": false, + "thread_id": 895040 + }, + { + "arch": "x86", + "current": false, + "CPU": 1, + "qom_path": "/machine/peripheral/vcpu1", + "pc": 4294967280, + "halted": false, + "thread_id": 895056 + }, + { + "arch": "x86", + "current": false, + "CPU": 2, + "qom_path": "/machine/peripheral/vcpu2", + "pc": 4294967280, + "halted": false, + "thread_id": 895057 + }, + { + "arch": "x86", + "current": false, + "CPU": 3, + "qom_path": "/machine/peripheral/vcpu3", + "pc": 4294967280, + "halted": false, + "thread_id": 895058 + }, + { + "arch": "x86", + "current": false, + "CPU": 4, + "qom_path": "/machine/peripheral/vcpu4", + "pc": 4294967280, + "halted": false, + "thread_id": 895059 + }, + { + "arch": "x86", + "current": false, + "CPU": 5, + "qom_path": "/machine/peripheral/vcpu5", + "pc": 4294967280, + "halted": false, + "thread_id": 895060 + }, + { + "arch": "x86", + "current": false, + "CPU": 6, + "qom_path": "/machine/peripheral/vcpu6", + "pc": 4294967280, + "halted": false, + "thread_id": 895061 + }, + { + "arch": "x86", + "current": false, + "CPU": 7, + "qom_path": "/machine/peripheral/vcpu7", + "pc": 4294967280, + "halted": false, + "thread_id": 895062 + }, + { + "arch": "x86", + "current": false, + "CPU": 8, + "qom_path": "/machine/peripheral/vcpu8", + "pc": 4294967280, + "halted": false, + "thread_id": 895063 + }, + { + "arch": "x86", + "current": false, + "CPU": 9, + "qom_path": "/machine/peripheral/vcpu9", + "pc": 4294967280, + "halted": false, + "thread_id": 895064 + }, + { + "arch": "x86", + "current": false, + "CPU": 10, + "qom_path": "/machine/peripheral/vcpu10", + "pc": 4294967280, + "halted": false, + "thread_id": 895065 + } + ], + "id": "libvirt-52" +} diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-hotplug.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-hotplug.json new file mode 100644 index 0000000..aff5aa3 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-hotplug.json @@ -0,0 +1,115 @@ +{ + "return": [ + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 10 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu10", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 9 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu9", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 8 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu8", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 7 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu7", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 6 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu6", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 5 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu5", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 4 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu4", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 3 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu3", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 2 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu2", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 1 + }, + "vcpus-count": 1, + "qom-path": "/machine/peripheral/vcpu1", + "type": "Broadwell-x86_64-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 0 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[0]", + "type": "Broadwell-x86_64-cpu" + } + ], + "id": "libvirt-51" +} diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data new file mode 100644 index 0000000..a6c1069 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data @@ -0,0 +1,76 @@ +[vcpu libvirt-id='0'] + thread-id='895040' + qemu-id='1' + type='Broadwell-x86_64-cpu' + qom_path='/machine/unattached/device[0]' + topology: socket='0' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='1'] + thread-id='895056' + qemu-id='2' + type='Broadwell-x86_64-cpu' + alias='vcpu1' + qom_path='/machine/peripheral/vcpu1' + topology: socket='1' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='2'] + thread-id='895057' + qemu-id='3' + type='Broadwell-x86_64-cpu' + alias='vcpu2' + qom_path='/machine/peripheral/vcpu2' + topology: socket='2' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='3'] + thread-id='895058' + qemu-id='4' + type='Broadwell-x86_64-cpu' + alias='vcpu3' + qom_path='/machine/peripheral/vcpu3' + topology: socket='3' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='4'] + thread-id='895059' + qemu-id='5' + type='Broadwell-x86_64-cpu' + alias='vcpu4' + qom_path='/machine/peripheral/vcpu4' + topology: socket='4' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='5'] + thread-id='895060' + qemu-id='6' + type='Broadwell-x86_64-cpu' + alias='vcpu5' + qom_path='/machine/peripheral/vcpu5' + topology: socket='5' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='6'] + thread-id='895061' + qemu-id='7' + type='Broadwell-x86_64-cpu' + alias='vcpu6' + qom_path='/machine/peripheral/vcpu6' + topology: socket='6' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='7'] + thread-id='895062' + qemu-id='8' + type='Broadwell-x86_64-cpu' + alias='vcpu7' + qom_path='/machine/peripheral/vcpu7' + topology: socket='7' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='8'] + thread-id='895063' + qemu-id='9' + type='Broadwell-x86_64-cpu' + alias='vcpu8' + qom_path='/machine/peripheral/vcpu8' + topology: socket='8' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='9'] + thread-id='895064' + qemu-id='10' + type='Broadwell-x86_64-cpu' + alias='vcpu9' + qom_path='/machine/peripheral/vcpu9' + topology: socket='9' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='10'] + thread-id='895065' + qemu-id='11' + type='Broadwell-x86_64-cpu' + alias='vcpu10' + qom_path='/machine/peripheral/vcpu10' + topology: socket='10' core='0' thread='0' vcpus='1' diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 2a40c44..c5bdad6 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2585,6 +2585,7 @@ mymain(void) DO_TEST_CPU_DATA("ecx"); DO_TEST_CPU_INFO("x86-basic-pluggable", 8); + DO_TEST_CPU_INFO("x86-full", 11); qemuTestDriverFree(&driver); -- 2.8.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list