On 1/11/23 09:57, Thomas Huth wrote:
On 05/01/2023 15.53, Pierre Morel wrote:
The maximum nested topology entries is used by the guest to know
how many nested topology are available on the machine.
Currently, SCLP READ SCP INFO reports MNEST = 0, which is the
equivalent of reporting the default value of 2.
Let's use the default SCLP value of 2 and increase this value in the
future patches implementing higher levels.
I'm confused ... so does a SCLP value of 2 mean a MNEST level of 4 ?
Sorry, I forgot to change this.
MNEST = 0 means no MNEST support and only socket is supported so it is
like MNEST = 2.
MNEST != 0 set the maximum nested level and correct values may be 2,3 or 4.
But this setting to 4 should already have been done in previous patch
where we introduced the books and drawers.
I change the commit message with:
---
s390x/sclp: reporting the maximum nested topology entries
The maximum nested topology entries is used by the guest to know
how many nested topology are available on the machine.
Let's return this information to the guest.
---
Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
---
include/hw/s390x/sclp.h | 5 +++--
hw/s390x/sclp.c | 4 ++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h
index 712fd68123..4ce852473c 100644
--- a/include/hw/s390x/sclp.h
+++ b/include/hw/s390x/sclp.h
@@ -112,12 +112,13 @@ typedef struct CPUEntry {
} QEMU_PACKED CPUEntry;
#define SCLP_READ_SCP_INFO_FIXED_CPU_OFFSET 128
-#define SCLP_READ_SCP_INFO_MNEST 2
+#define SCLP_READ_SCP_INFO_MNEST 4
... since you update it to 4 here.
Yes, in fact this should be set in the previous patch already to 4.
So I will do that.
typedef struct ReadInfo {
SCCBHeader h;
uint16_t rnmax;
uint8_t rnsize;
- uint8_t _reserved1[16 - 11]; /* 11-15 */
+ uint8_t _reserved1[15 - 11]; /* 11-14 */
+ uint8_t stsi_parm; /* 15-16 */
uint16_t entries_cpu; /* 16-17 */
uint16_t offset_cpu; /* 18-19 */
uint8_t _reserved2[24 - 20]; /* 20-23 */
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index eff74479f4..07e3cb4cac 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -20,6 +20,7 @@
#include "hw/s390x/event-facility.h"
#include "hw/s390x/s390-pci-bus.h"
#include "hw/s390x/ipl.h"
+#include "hw/s390x/cpu-topology.h"
static inline SCLPDevice *get_sclp_device(void)
{
@@ -125,6 +126,9 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB
*sccb)
/* CPU information */
prepare_cpu_entries(machine, entries_start, &cpu_count);
+ if (s390_has_topology()) {
+ read_info->stsi_parm = SCLP_READ_SCP_INFO_MNEST;
This seems to be in contradiction to what you've said in the commit
description - you set it to 4 and not to 2.
Yes, I change the commit message.
Thanks.
Regards,
Pierre
--
Pierre Morel
IBM Lab Boeblingen