[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v16 10/11] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi
From: |
Pierre Morel |
Subject: |
[PATCH v16 10/11] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event |
Date: |
Wed, 22 Feb 2023 15:21:04 +0100 |
When the guest asks to change the polarization this change
is forwarded to the admin using QAPI.
The admin is supposed to take according decisions concerning
CPU provisioning.
Signed-off-by: Pierre Morel <pmorel@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 baa9d273cf..e7a9049c1f 100644
--- a/qapi/machine-target.json
+++ b/qapi/machine-target.json
@@ -389,3 +389,37 @@
'features': [ 'unstable' ],
'if': { 'all': [ 'TARGET_S390X' ] }
}
+
+##
+# @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.0
+#
+# Example:
+#
+# <- { "event": "CPU_POLARIZATION_CHANGE",
+# "data": { "polarization": 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 3a7eb441a3..d498873c80 100644
--- a/hw/s390x/cpu-topology.c
+++ b/hw/s390x/cpu-topology.c
@@ -21,6 +21,7 @@
#include "qapi/qapi-types-machine-target.h"
#include "qapi/qapi-types-machine.h"
#include "qapi/qapi-commands-machine-target.h"
+#include "qapi/qapi-events-machine-target.h"
#include "qapi/qmp/qdict.h"
#include "monitor/hmp.h"
#include "monitor/monitor.h"
@@ -167,6 +168,7 @@ void s390_handle_ptf(S390CPU *cpu, uint8_t r1, uintptr_t ra)
s390_topology.polarization = fc;
s390_cpu_topology_set_changed(true);
s390_topology_set_cpus_entitlement(fc);
+ qapi_event_send_cpu_polarization_change(fc);
setcc(cpu, 0);
}
break;
--
2.31.1
- [PATCH v16 03/11] target/s390x/cpu topology: handle STSI(15) and build the SYSIB, (continued)
- [PATCH v16 03/11] target/s390x/cpu topology: handle STSI(15) and build the SYSIB, Pierre Morel, 2023/02/22
- [PATCH v16 06/11] s390x/cpu topology: interception of PTF instruction, Pierre Morel, 2023/02/22
- [PATCH v16 09/11] machine: adding s390 topology to query-cpu-fast, Pierre Morel, 2023/02/22
- [PATCH v16 10/11] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event,
Pierre Morel <=
- [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Pierre Morel, 2023/02/22
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Nina Schoetterl-Glausch, 2023/02/24
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Thomas Huth, 2023/02/27
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Nina Schoetterl-Glausch, 2023/02/27
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Markus Armbruster, 2023/02/27
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Nina Schoetterl-Glausch, 2023/02/27
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Markus Armbruster, 2023/02/27
- Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Pierre Morel, 2023/02/27