On Wed, 2023-09-20 at 13:36 +0200, Markus Armbruster wrote: > Nina Schoetterl-Glausch <n...@linux.ibm.com> writes: > > > From: Pierre Morel <pmo...@linux.ibm.com> > > > > The modification of the CPU attributes are done through a monitor > > command. > > > > It allows to move the core inside the topology tree to optimize > > the cache usage in the case the host's hypervisor previously > > moved the CPU. > > > > The same command allows to modify the CPU attributes modifiers > > like polarization entitlement and the dedicated attribute to notify > > the guest if the host admin modified scheduling or dedication of a vCPU. > > > > With this knowledge the guest has the possibility to optimize the > > usage of the vCPUs. > > > > The command has a feature unstable for the moment. > > > > Signed-off-by: Pierre Morel <pmo...@linux.ibm.com> > > Reviewed-by: Nina Schoetterl-Glausch <n...@linux.ibm.com> > > Co-developed-by: Nina Schoetterl-Glausch <n...@linux.ibm.com> > > Signed-off-by: Nina Schoetterl-Glausch <n...@linux.ibm.com> > > --- > > qapi/machine-target.json | 37 +++++++++++ > > hw/s390x/cpu-topology.c | 132 +++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 169 insertions(+) > > > > diff --git a/qapi/machine-target.json b/qapi/machine-target.json > > index 0d45a590ce..e47a252bd9 100644 > > --- a/qapi/machine-target.json > > +++ b/qapi/machine-target.json
[...] > > +# Modifies the topology by moving the CPU inside the topology > > +# tree or by changing a modifier attribute of a CPU. > > +# Default value for optional parameter is the current value > > +# used by the CPU. > > So, anything absent will not be changed. Maybe that's a clearer way to > put it. What do you think? Yes. > > > +# > > +# Returns: Nothing on success, the reason on failure. > > +# > > +# Since: 8.2 > > +## > > +{ 'command': 'set-cpu-topology', > > + 'data': { > > + 'core-id': 'uint16', > > + '*socket-id': 'uint16', > > + '*book-id': 'uint16', > > + '*drawer-id': 'uint16', > > CpuInstanceProperties uses 'int' for these. Any particular reason for > the difference? unsigned -> no need to check if >0 16bit is also the width the hardware uses for these values on s390. > > + '*entitlement': 'CpuS390Entitlement', > > + '*dedicated': 'bool' > > + }, > > + 'features': [ 'unstable' ], > > + 'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] } > > +} > > [...] >