From: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
To: Pierre Morel <pmorel@linux.ibm.com>, qemu-s390x@nongnu.org
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com,
pasic@linux.ibm.com, richard.henderson@linaro.org,
david@redhat.com, thuth@redhat.com, cohuck@redhat.com,
mst@redhat.com, pbonzini@redhat.com, kvm@vger.kernel.org,
ehabkost@redhat.com, marcel.apfelbaum@gmail.com,
eblake@redhat.com, armbru@redhat.com, seiden@linux.ibm.com,
nrb@linux.ibm.com, frankja@linux.ibm.com, berrange@redhat.com,
clg@kaod.org
Subject: Re: [PATCH v20 11/21] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event
Date: Mon, 08 May 2023 23:47:38 +0200 [thread overview]
Message-ID: <3a79538637fc8e8f226290c9ba833face1784c29.camel@linux.ibm.com> (raw)
In-Reply-To: <20230425161456.21031-12-pmorel@linux.ibm.com>
On Tue, 2023-04-25 at 18:14 +0200, Pierre Morel wrote:
> 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 <pmorel@linux.ibm.com>
> ---
> qapi/machine-target.json | 33 +++++++++++++++++++++++++++++++++
> hw/s390x/cpu-topology.c | 2 ++
> 2 files changed, 35 insertions(+)
>
> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> index 3b7a0b77f4..ffde2e9cbd 100644
> --- a/qapi/machine-target.json
> +++ b/qapi/machine-target.json
> @@ -391,3 +391,36 @@
> 'features': [ 'unstable' ],
> 'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] }
> }
> +
> +##
> +# @CPU_POLARIZATION_CHANGE:
> +#
> +# Emitted when the guest asks to change the polarization.
> +#
> +# @polarization: polarization specified by the guest
> +#
> +# Features:
> +# @unstable: This command may still be modified.
> +#
> +# 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.
> +# 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.
> +#
> +# Since: 8.1
> +#
> +# Example:
> +#
> +# <- { "event": "CPU_POLARIZATION_CHANGE",
> +# "data": { "polarization": 0 },
I think you'd be getting "horizontal" instead of 0.
> +# "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 e5fb976594..e8b140d623 100644
> --- a/hw/s390x/cpu-topology.c
> +++ b/hw/s390x/cpu-topology.c
> @@ -17,6 +17,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.
> @@ -138,6 +139,7 @@ void s390_handle_ptf(S390CPU *cpu, uint8_t r1, uintptr_t ra)
> } else {
> s390_topology.vertical_polarization = !!fc;
> s390_cpu_topology_set_changed(true);
> + qapi_event_send_cpu_polarization_change(fc);
I'm not sure I like the implicit conversation of the function code to the enum value.
How about you do qapi_event_send_cpu_polarization_change(s390_topology.polarization);
and rename vertical_polarization and change it's type to the enum.
You can then also do
+ CpuS390Polarization polarization = S390_CPU_POLARIZATION_HORIZONTAL;
+ switch (fc) {
+ case S390_CPU_POLARIZATION_VERTICAL:
+ polarization = S390_CPU_POLARIZATION_VERTICAL;
+ /* fallthrough */
+ case S390_CPU_POLARIZATION_HORIZONTAL:
+ if (s390_topology.polarization == polarization) {
and use the value for the assignment further down, too.
> setcc(cpu, 0);
> }
> break;
next prev parent reply other threads:[~2023-05-08 21:48 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 16:14 [PATCH v20 00/21] s390x: CPU Topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 01/21] s390x/cpu topology: add s390 specifics to CPU topology Pierre Morel
2023-04-27 8:04 ` Thomas Huth
2023-04-28 12:27 ` Pierre Morel
2023-05-03 9:36 ` Pierre Morel
2023-05-03 9:54 ` Thomas Huth
2023-05-03 11:17 ` Pierre Morel
2023-05-02 12:05 ` Cédric Le Goater
2023-05-02 13:48 ` Cédric Le Goater
2023-05-03 7:23 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 02/21] s390x/cpu topology: add topology entries on CPU hotplug Pierre Morel
2023-04-27 13:38 ` Thomas Huth
2023-04-28 12:35 ` Pierre Morel
2023-05-03 9:12 ` Thomas Huth
2023-05-03 10:23 ` Cédric Le Goater
2023-06-21 13:48 ` Pierre Morel
2023-05-02 12:30 ` Cédric Le Goater
2023-05-03 7:21 ` Pierre Morel
2023-05-03 11:23 ` Cédric Le Goater
2023-04-25 16:14 ` [PATCH v20 03/21] target/s390x/cpu topology: handle STSI(15) and build the SYSIB Pierre Morel
2023-04-27 17:01 ` Thomas Huth
2023-04-28 12:42 ` Pierre Morel
2023-05-02 17:22 ` Nina Schoetterl-Glausch
2023-05-03 8:43 ` Pierre Morel
2023-05-03 13:01 ` Nina Schoetterl-Glausch
2023-04-25 16:14 ` [PATCH v20 04/21] s390x/sclp: reporting the maximum nested topology entries Pierre Morel
2023-04-25 16:14 ` [PATCH v20 05/21] s390x/cpu topology: resetting the Topology-Change-Report Pierre Morel
2023-04-25 16:14 ` [PATCH v20 06/21] s390x/cpu topology: interception of PTF instruction Pierre Morel
2023-05-04 11:03 ` Nina Schoetterl-Glausch
2023-05-05 9:34 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 07/21] target/s390x/cpu topology: activate CPU topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 08/21] qapi/s390x/cpu topology: set-cpu-topology qmp command Pierre Morel
2023-05-08 19:42 ` Nina Schoetterl-Glausch
2023-05-09 8:50 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 09/21] machine: adding s390 topology to query-cpu-fast Pierre Morel
2023-06-12 7:55 ` Cédric Le Goater
2023-06-21 12:50 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 10/21] machine: adding s390 topology to info hotpluggable-cpus Pierre Morel
2023-05-08 19:49 ` Nina Schoetterl-Glausch
2023-05-09 8:40 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 11/21] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event Pierre Morel
2023-05-08 21:47 ` Nina Schoetterl-Glausch [this message]
2023-05-09 12:31 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 12/21] qapi/s390x/cpu topology: query-cpu-polarization qmp command Pierre Morel
2023-05-10 12:04 ` Nina Schoetterl-Glausch
2023-05-12 11:56 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 13/21] docs/s390x/cpu topology: document s390x cpu topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 14/21] tests/avocado: s390x cpu topology core Pierre Morel
2023-05-22 19:38 ` Nina Schoetterl-Glausch
2023-06-27 11:58 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 15/21] tests/avocado: s390x cpu topology polarisation Pierre Morel
2023-05-22 19:45 ` Nina Schoetterl-Glausch
2023-06-27 13:01 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 16/21] tests/avocado: s390x cpu topology entitlement tests Pierre Morel
2023-05-22 19:47 ` Nina Schoetterl-Glausch
2023-06-27 13:22 ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 17/21] tests/avocado: s390x cpu topology test dedicated CPU Pierre Morel
2023-04-25 16:14 ` [PATCH v20 18/21] tests/avocado: s390x cpu topology test socket full Pierre Morel
2023-04-25 16:14 ` [PATCH v20 19/21] tests/avocado: s390x cpu topology dedicated errors Pierre Morel
2023-04-25 16:14 ` [PATCH v20 20/21] tests/avocado: s390x cpu topology bad move Pierre Morel
2023-04-25 16:14 ` [PATCH v20 21/21] tests/avocado: s390x cpu topology query-cpu-polarization Pierre Morel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3a79538637fc8e8f226290c9ba833face1784c29.camel@linux.ibm.com \
--to=nsg@linux.ibm.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=clg@kaod.org \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=nrb@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=seiden@linux.ibm.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).