On Wed, 2023-02-01 at 14:20 +0100, Pierre Morel wrote: > S390x provides two more topology containers above the sockets, > books and drawers. > > Let's add these CPU attributes to the QAPI command query-cpu-fast. > > Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > --- > qapi/machine.json | 13 ++++++++++--- > hw/core/machine-qmp-cmds.c | 2 ++ > 2 files changed, 12 insertions(+), 3 deletions(-) > > diff --git a/qapi/machine.json b/qapi/machine.json > index 3036117059..e36c39e258 100644 > --- a/qapi/machine.json > +++ b/qapi/machine.json > @@ -53,11 +53,18 @@ > # > # Additional information about a virtual S390 CPU > # > -# @cpu-state: the virtual CPU's state > +# @cpu-state: the virtual CPU's state (since 2.12) > +# @dedicated: the virtual CPU's dedication (since 8.0) > +# @polarity: the virtual CPU's polarity (since 8.0) > # > # Since: 2.12 > ## > -{ 'struct': 'CpuInfoS390', 'data': { 'cpu-state': 'CpuS390State' } } > +{ 'struct': 'CpuInfoS390', > + 'data': { 'cpu-state': 'CpuS390State', > + 'dedicated': 'bool', > + 'polarity': 'int' > + } > +} > > ## > # @CpuInfoFast: > @@ -70,7 +77,7 @@ > # > # @thread-id: ID of the underlying host thread > # > -# @props: properties describing to which node/socket/core/thread > +# @props: properties describing to which node/drawer/book/socket/core/thread > # virtual CPU belongs to, provided if supported by board > # > # @target: the QEMU system emulation target, which determines which > diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c > index 80d5e59651..e6d93cf2a0 100644 > --- a/hw/core/machine-qmp-cmds.c > +++ b/hw/core/machine-qmp-cmds.c > @@ -30,6 +30,8 @@ static void cpustate_to_cpuinfo_s390(CpuInfoS390 *info, const CPUState *cpu) > CPUS390XState *env = &s390_cpu->env; > > info->cpu_state = env->cpu_state; > + info->dedicated = env->dedicated; > + info->polarity = env->entitlement; Might want to do s/polarity/entitlement on the whole patch to make this more coherent. Reviewed-by: Nina Schoetterl-Glausch if you fix the issues in Thomas' first reply. > #else > abort(); > #endif