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 |  42 +++++++++++++
>  hw/s390x/cpu-topology.c  | 132 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 174 insertions(+)
>
> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> index 93cbf1c128..3fd8390922 100644
> --- a/qapi/machine-target.json
> +++ b/qapi/machine-target.json
> @@ -4,6 +4,8 @@
>  # This work is licensed under the terms of the GNU GPL, version 2 or later.
>  # See the COPYING file in the top-level directory.
>  
> +{ 'include': 'machine-common.json' }
> +
>  ##
>  # @CpuModelInfo:
>  #
> @@ -375,3 +377,43 @@
>    'data': [ 'horizontal', 'vertical' ],
>    'if': 'TARGET_S390X'
>  }
> +
> +##
> +# @set-cpu-topology:
> +#
> +# Modifies the topology by moving the CPU inside the topology

Imperative mood, please: Modify the topology ...

> +# tree or by changing a modifier attribute of a CPU.

Comma after tree.

> +# Absent values will not be modified.
> +#
> +# @core-id: the vCPU ID to be moved
> +#
> +# @socket-id: destination socket to move the vCPU to
> +#
> +# @book-id: destination book to move the vCPU to
> +#
> +# @drawer-id: destination drawer to move the vCPU to
> +#
> +# @entitlement: entitlement to set
> +#
> +# @dedicated: whether the provisioning of real to virtual CPU is dedicated
> +#
> +# Features:
> +#
> +# @unstable: This command may still be modified.

The conventional phrasing is "This command is experimental."

> +#
> +# Returns: Nothing on success, the reason on failure.

Scratch ", the reason on failure".  You get a QMP error reply on
failure.

> +#
> +# Since: 8.2
> +##
> +{ 'command': 'set-cpu-topology',
> +  'data': {
> +      'core-id': 'uint16',
> +      '*socket-id': 'uint16',
> +      '*book-id': 'uint16',
> +      '*drawer-id': 'uint16',
> +      '*entitlement': 'CpuS390Entitlement',
> +      '*dedicated': 'bool'
> +  },
> +  'features': [ 'unstable' ],
> +  'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] }
> +}

[...]


Reply via email to