In the subject: QAPI event

Nina Schoetterl-Glausch <n...@linux.ibm.com> writes:

> From: Pierre Morel <pmo...@linux.ibm.com>
>
> When the guest asks to change the polarization this change
> is forwarded to the upper layer using QAPI.
> The upper layer is supposed to take according decisions concerning
> CPU provisioning.
>
> Signed-off-by: Pierre Morel <pmo...@linux.ibm.com>
> Reviewed-by: Thomas Huth <th...@redhat.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 | 34 ++++++++++++++++++++++++++++++++++
>  hw/s390x/cpu-topology.c  |  2 ++
>  2 files changed, 36 insertions(+)
>
> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> index 3fd8390922..02f1de5d02 100644
> --- a/qapi/machine-target.json
> +++ b/qapi/machine-target.json
> @@ -417,3 +417,37 @@
>    'features': [ 'unstable' ],
>    'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] }
>  }
> +
> +##
> +# @CPU_POLARIZATION_CHANGE:
> +#
> +# Emitted when the guest asks to change the polarization.
> +#
> +# The guest can tell the host (via the PTF instruction) whether the
> +# CPUs should be provisioned using horizontal or vertical polarization.
> +#
> +# On horizontal polarization the host is expected to provision all vCPUs
> +# equally.

Blank line between paragraphs, please.

> +# On vertical polarization the host can provision each vCPU differently.
> +# The guest will get information on the details of the provisioning
> +# the next time it uses the STSI(15) instruction.
> +#
> +# @polarization: polarization specified by the guest
> +#
> +# Features:
> +#
> +# @unstable: This event is experimental.
> +#
> +# Since: 8.2
> +#
> +# Example:
> +#
> +# <- { "event": "CPU_POLARIZATION_CHANGE",
> +#      "data": { "polarization": "horizontal" },
> +#      "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
> +##
> +{ 'event': 'CPU_POLARIZATION_CHANGE',
> +  'data': { 'polarization': 'CpuS390Polarization' },
> +  'features': [ 'unstable' ],
> +  'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] }
> +}
> diff --git a/hw/s390x/cpu-topology.c b/hw/s390x/cpu-topology.c
> index f3771f5045..327bccea4f 100644
> --- a/hw/s390x/cpu-topology.c
> +++ b/hw/s390x/cpu-topology.c
> @@ -24,6 +24,7 @@
>  #include "hw/s390x/s390-virtio-ccw.h"
>  #include "hw/s390x/cpu-topology.h"
>  #include "qapi/qapi-commands-machine-target.h"
> +#include "qapi/qapi-events-machine-target.h"
>  
>  /*
>   * s390_topology is used to keep the topology information.
> @@ -136,6 +137,7 @@ void s390_handle_ptf(S390CPU *cpu, uint8_t r1, uintptr_t 
> ra)
>          } else {
>              s390_topology.polarization = polarization;
>              s390_cpu_topology_set_changed(true);
> +            qapi_event_send_cpu_polarization_change(polarization);
>              setcc(cpu, 0);
>          }
>          break;

Acked-by: Markus Armbruster <arm...@redhat.com>


Reply via email to