[libvirt] [PATCH 3/4] qemu: monitor: Add vcpu state information to monitor data

Dou Liyang douly.fnst at cn.fujitsu.com
Wed Sep 14 02:26:51 UTC 2016


Hi Peter,

At 09/14/2016 12:27 AM, Peter Krempa wrote:
> Return whether a vcpu entry is hotpluggable or online so that upper
> layers don't have to infer the information from other data.
>
> Advantage is that this code can be tested by unit tests.
> ---
>  src/qemu/qemu_monitor.c                            | 11 +++++
>  src/qemu/qemu_monitor.h                            |  4 ++
>  .../qemumonitorjson-cpuinfo-ppc64-basic.data       | 48 ++++++++++++++++++++++
>  .../qemumonitorjson-cpuinfo-ppc64-hotplug-1.data   | 48 ++++++++++++++++++++++
>  .../qemumonitorjson-cpuinfo-ppc64-hotplug-2.data   | 48 ++++++++++++++++++++++
>  .../qemumonitorjson-cpuinfo-ppc64-hotplug-4.data   | 48 ++++++++++++++++++++++
>  .../qemumonitorjson-cpuinfo-ppc64-no-threads.data  | 32 +++++++++++++++
>  ...emumonitorjson-cpuinfo-x86-basic-pluggable.data | 16 ++++++++
>  .../qemumonitorjson-cpuinfo-x86-full.data          | 22 ++++++++++
>  tests/qemumonitorjsontest.c                        |  3 ++
>  10 files changed, 280 insertions(+)
>
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index 4489997..e700b15 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -1773,6 +1773,7 @@ qemuMonitorGetCPUInfoHotplug(struct qemuMonitorQueryHotpluggableCpusEntry *hotpl
>      int order = 1;
>      size_t totalvcpus = 0;
>      size_t mastervcpu; /* this iterator is used for iterating hotpluggable entities */
> +    size_t slavevcpu; /* this corresponds to subentries of a hotpluggable entry */
>      size_t anyvcpu; /* this iterator is used for any vcpu entry in the result */
>      size_t i;
>      size_t j;
> @@ -1816,6 +1817,10 @@ qemuMonitorGetCPUInfoHotplug(struct qemuMonitorQueryHotpluggableCpusEntry *hotpl
>       * logical vcpus in the guest */
>      mastervcpu = 0;
>      for (i = 0; i < nhotplugvcpus; i++) {
> +        vcpus[mastervcpu].online = !!hotplugvcpus[i].qom_path;
> +        vcpus[mastervcpu].hotpluggable = !!hotplugvcpus[i].alias;
> +        if (!vcpus[mastervcpu].online)
> +            vcpus[mastervcpu].hotpluggable = true;

I think if the vcpu don't have an alias, we mark it as non-hotpluggable.
so, the code above may not fit well.

I guess you may mean that:

vcpus[mastervcpu].online = !!hotplugvcpus[i].qom_path;
vcpus[mastervcpu].hotpluggable = false;
if (!vcpus[mastervcpu].online && (!!hotplugvcpus[i].alias))
     vcpus[mastervcpu].hotpluggable = true;

OR

vcpus[mastervcpu].online = !!hotplugvcpus[i].qom_path;

if (vcpus[mastervcpu].online)
     vcpus[mastervcpu].hotpluggable = false;
else
     vcpus[mastervcpu].hotpluggable = !!hotplugvcpus[i].alias;

Just for suggest.  :)

Thanks,
Dou
>          vcpus[mastervcpu].socket_id = hotplugvcpus[i].socket_id;
>          vcpus[mastervcpu].core_id = hotplugvcpus[i].core_id;
>          vcpus[mastervcpu].thread_id = hotplugvcpus[i].thread_id;
> @@ -1825,6 +1830,12 @@ qemuMonitorGetCPUInfoHotplug(struct qemuMonitorQueryHotpluggableCpusEntry *hotpl
>          VIR_STEAL_PTR(vcpus[mastervcpu].type, hotplugvcpus[i].type);
>          vcpus[mastervcpu].id = hotplugvcpus[i].enable_id;
>
> +        /* copy state information to slave vcpus */
> +        for (slavevcpu = mastervcpu + 1; slavevcpu < mastervcpu + hotplugvcpus[i].vcpus; slavevcpu++) {
> +            vcpus[slavevcpu].online = vcpus[mastervcpu].online;
> +            vcpus[slavevcpu].hotpluggable = vcpus[mastervcpu].hotpluggable;
> +        }
> +
>          /* calculate next master vcpu (hotpluggable unit) entry */
>          mastervcpu += hotplugvcpus[i].vcpus;
>      }
> diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
> index 255fff2..615ab3e 100644
> --- a/src/qemu/qemu_monitor.h
> +++ b/src/qemu/qemu_monitor.h
> @@ -422,6 +422,10 @@ struct _qemuMonitorCPUInfo {
>      pid_t tid;
>      int id; /* order of enabling of the given cpu */
>
> +    /* state data */
> +    bool online;
> +    bool hotpluggable;
> +
>      /* topology info for hotplug purposes. Hotplug of given vcpu impossible if
>       * all entries are -1 */
>      int socket_id;
> diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
> index 9fc8148..ae7c2f4 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-basic.data
> @@ -1,40 +1,88 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      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']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21926'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21927'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21928'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21930'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21931'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21932'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21933'
>  [vcpu libvirt-id='8']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='8' vcpus='8'
>  [vcpu libvirt-id='9']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='10']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='11']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='12']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='13']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='14']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='15']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='16']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='16' vcpus='8'
>  [vcpu libvirt-id='17']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='18']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='19']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='20']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='21']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='22']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='23']
> +    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 b0139b5..5c0a6af 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-1.data
> @@ -1,24 +1,42 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      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']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21926'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21927'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21928'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21930'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21931'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21932'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21933'
>  [vcpu libvirt-id='8']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22131'
>      qemu-id='2'
>      type='host-spapr-cpu-core'
> @@ -26,26 +44,56 @@
>      qom_path='/machine/peripheral/vcpu0'
>      topology: core='8' vcpus='8'
>  [vcpu libvirt-id='9']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22132'
>  [vcpu libvirt-id='10']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22133'
>  [vcpu libvirt-id='11']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22134'
>  [vcpu libvirt-id='12']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22135'
>  [vcpu libvirt-id='13']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22136'
>  [vcpu libvirt-id='14']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22137'
>  [vcpu libvirt-id='15']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22138'
>  [vcpu libvirt-id='16']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='16' vcpus='8'
>  [vcpu libvirt-id='17']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='18']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='19']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='20']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='21']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='22']
> +    online=no
> +    hotpluggable=yes
>  [vcpu libvirt-id='23']
> +    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 ea4b099..ba4044e 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-2.data
> @@ -1,24 +1,42 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      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']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21926'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21927'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21928'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21930'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21931'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21932'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21933'
>  [vcpu libvirt-id='8']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22131'
>      qemu-id='2'
>      type='host-spapr-cpu-core'
> @@ -26,20 +44,36 @@
>      qom_path='/machine/peripheral/vcpu0'
>      topology: core='8' vcpus='8'
>  [vcpu libvirt-id='9']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22132'
>  [vcpu libvirt-id='10']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22133'
>  [vcpu libvirt-id='11']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22134'
>  [vcpu libvirt-id='12']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22135'
>  [vcpu libvirt-id='13']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22136'
>  [vcpu libvirt-id='14']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22137'
>  [vcpu libvirt-id='15']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22138'
>  [vcpu libvirt-id='16']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22223'
>      qemu-id='3'
>      type='host-spapr-cpu-core'
> @@ -47,16 +81,30 @@
>      qom_path='/machine/peripheral/vcpu1'
>      topology: core='16' vcpus='8'
>  [vcpu libvirt-id='17']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22224'
>  [vcpu libvirt-id='18']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22225'
>  [vcpu libvirt-id='19']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22226'
>  [vcpu libvirt-id='20']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22227'
>  [vcpu libvirt-id='21']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22228'
>  [vcpu libvirt-id='22']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22229'
>  [vcpu libvirt-id='23']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22230'
> diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
> index 22a425d..d2c56ef 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-hotplug-4.data
> @@ -1,24 +1,42 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      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']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21926'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21927'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21928'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21930'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21931'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21932'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=no
>      thread-id='21933'
>  [vcpu libvirt-id='8']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23170'
>      qemu-id='3'
>      type='host-spapr-cpu-core'
> @@ -26,20 +44,36 @@
>      qom_path='/machine/peripheral/vcpu0'
>      topology: core='8' vcpus='8'
>  [vcpu libvirt-id='9']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23171'
>  [vcpu libvirt-id='10']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23172'
>  [vcpu libvirt-id='11']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23173'
>  [vcpu libvirt-id='12']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23174'
>  [vcpu libvirt-id='13']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23175'
>  [vcpu libvirt-id='14']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23176'
>  [vcpu libvirt-id='15']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='23177'
>  [vcpu libvirt-id='16']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22741'
>      qemu-id='2'
>      type='host-spapr-cpu-core'
> @@ -47,16 +81,30 @@
>      qom_path='/machine/peripheral/vcpu1'
>      topology: core='16' vcpus='8'
>  [vcpu libvirt-id='17']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22742'
>  [vcpu libvirt-id='18']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22743'
>  [vcpu libvirt-id='19']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22744'
>  [vcpu libvirt-id='20']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22745'
>  [vcpu libvirt-id='21']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22746'
>  [vcpu libvirt-id='22']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22747'
>  [vcpu libvirt-id='23']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='22748'
> diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
> index d7ab77b..c2f541b 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-ppc64-no-threads.data
> @@ -1,72 +1,104 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35232'
>      qemu-id='1'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[1]'
>      topology: core='0' vcpus='1'
>  [vcpu libvirt-id='1']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35233'
>      qemu-id='2'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[2]'
>      topology: core='8' vcpus='1'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35234'
>      qemu-id='3'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[3]'
>      topology: core='16' vcpus='1'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35235'
>      qemu-id='4'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[4]'
>      topology: core='24' vcpus='1'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35236'
>      qemu-id='5'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[5]'
>      topology: core='32' vcpus='1'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35237'
>      qemu-id='6'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[6]'
>      topology: core='40' vcpus='1'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35238'
>      qemu-id='7'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[7]'
>      topology: core='48' vcpus='1'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=no
>      thread-id='35239'
>      qemu-id='8'
>      type='host-spapr-cpu-core'
>      qom_path='/machine/unattached/device[8]'
>      topology: core='56' vcpus='1'
>  [vcpu libvirt-id='8']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='64' vcpus='1'
>  [vcpu libvirt-id='9']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='72' vcpus='1'
>  [vcpu libvirt-id='10']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='80' vcpus='1'
>  [vcpu libvirt-id='11']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='88' vcpus='1'
>  [vcpu libvirt-id='12']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='96' vcpus='1'
>  [vcpu libvirt-id='13']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='104' vcpus='1'
>  [vcpu libvirt-id='14']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='112' vcpus='1'
>  [vcpu libvirt-id='15']
> +    online=no
> +    hotpluggable=yes
>      type='host-spapr-cpu-core'
>      topology: core='120' vcpus='1'
> diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
> index a367a09..67dfc01 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data
> @@ -1,39 +1,55 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      thread-id='518291'
>      qemu-id='1'
>      type='qemu64-x86_64-cpu'
>      qom_path='/machine/unattached/device[0]'
>      topology: socket='0' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='1']
> +    online=yes
> +    hotpluggable=no
>      thread-id='518292'
>      qemu-id='2'
>      type='qemu64-x86_64-cpu'
>      qom_path='/machine/unattached/device[2]'
>      topology: socket='0' core='0' thread='1' vcpus='1'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=no
>      thread-id='518294'
>      qemu-id='3'
>      type='qemu64-x86_64-cpu'
>      qom_path='/machine/unattached/device[3]'
>      topology: socket='0' core='1' thread='0' vcpus='1'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=no
>      thread-id='518295'
>      qemu-id='4'
>      type='qemu64-x86_64-cpu'
>      qom_path='/machine/unattached/device[4]'
>      topology: socket='0' core='1' thread='1' vcpus='1'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=no
>      thread-id='518296'
>      qemu-id='5'
>      type='qemu64-x86_64-cpu'
>      qom_path='/machine/unattached/device[5]'
>      topology: socket='1' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='5']
> +    online=no
> +    hotpluggable=yes
>      type='qemu64-x86_64-cpu'
>      topology: socket='1' core='0' thread='1' vcpus='1'
>  [vcpu libvirt-id='6']
> +    online=no
> +    hotpluggable=yes
>      type='qemu64-x86_64-cpu'
>      topology: socket='1' core='1' thread='0' vcpus='1'
>  [vcpu libvirt-id='7']
> +    online=no
> +    hotpluggable=yes
>      type='qemu64-x86_64-cpu'
>      topology: socket='1' core='1' thread='1' vcpus='1'
> diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
> index a6c1069..dba3745 100644
> --- a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
> +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full.data
> @@ -1,10 +1,14 @@
>  [vcpu libvirt-id='0']
> +    online=yes
> +    hotpluggable=no
>      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']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895056'
>      qemu-id='2'
>      type='Broadwell-x86_64-cpu'
> @@ -12,6 +16,8 @@
>      qom_path='/machine/peripheral/vcpu1'
>      topology: socket='1' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='2']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895057'
>      qemu-id='3'
>      type='Broadwell-x86_64-cpu'
> @@ -19,6 +25,8 @@
>      qom_path='/machine/peripheral/vcpu2'
>      topology: socket='2' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='3']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895058'
>      qemu-id='4'
>      type='Broadwell-x86_64-cpu'
> @@ -26,6 +34,8 @@
>      qom_path='/machine/peripheral/vcpu3'
>      topology: socket='3' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='4']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895059'
>      qemu-id='5'
>      type='Broadwell-x86_64-cpu'
> @@ -33,6 +43,8 @@
>      qom_path='/machine/peripheral/vcpu4'
>      topology: socket='4' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='5']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895060'
>      qemu-id='6'
>      type='Broadwell-x86_64-cpu'
> @@ -40,6 +52,8 @@
>      qom_path='/machine/peripheral/vcpu5'
>      topology: socket='5' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='6']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895061'
>      qemu-id='7'
>      type='Broadwell-x86_64-cpu'
> @@ -47,6 +61,8 @@
>      qom_path='/machine/peripheral/vcpu6'
>      topology: socket='6' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='7']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895062'
>      qemu-id='8'
>      type='Broadwell-x86_64-cpu'
> @@ -54,6 +70,8 @@
>      qom_path='/machine/peripheral/vcpu7'
>      topology: socket='7' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='8']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895063'
>      qemu-id='9'
>      type='Broadwell-x86_64-cpu'
> @@ -61,6 +79,8 @@
>      qom_path='/machine/peripheral/vcpu8'
>      topology: socket='8' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='9']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895064'
>      qemu-id='10'
>      type='Broadwell-x86_64-cpu'
> @@ -68,6 +88,8 @@
>      qom_path='/machine/peripheral/vcpu9'
>      topology: socket='9' core='0' thread='0' vcpus='1'
>  [vcpu libvirt-id='10']
> +    online=yes
> +    hotpluggable=yes
>      thread-id='895065'
>      qemu-id='11'
>      type='Broadwell-x86_64-cpu'
> diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
> index d3ec3b1..9e195d7 100644
> --- a/tests/qemumonitorjsontest.c
> +++ b/tests/qemumonitorjsontest.c
> @@ -2357,6 +2357,9 @@ testQemuMonitorCPUInfoFormat(qemuMonitorCPUInfoPtr vcpus,
>          virBufferAsprintf(&buf, "[vcpu libvirt-id='%zu']\n", i);
>          virBufferAdjustIndent(&buf, 4);
>
> +        virBufferAsprintf(&buf, "online=%s\n", vcpu->online ? "yes" : "no");
> +        virBufferAsprintf(&buf, "hotpluggable=%s\n", vcpu->hotpluggable ? "yes" : "no");
> +
>          if (vcpu->tid)
>              virBufferAsprintf(&buf, "thread-id='%llu'\n",
>                                (unsigned long long) vcpu->tid);
>





More information about the libvir-list mailing list