Message ID | 1628612544-25130-2-git-send-email-pmorel@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | S390x: CPU Topology Information | expand |
On 8/10/21 6:22 PM, Pierre Morel wrote: > The maximum CPU Topology nested level is available with the SCLP > READ_INFO command inside the byte at offset 15 of the ReadInfo > structure. > > Let's return this information to check the number of topology nested > information available with the STSI 15.1.x instruction. > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> > Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> > --- > lib/s390x/sclp.c | 6 ++++++ > lib/s390x/sclp.h | 4 +++- > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c > index 9502d161..ee379ddf 100644 > --- a/lib/s390x/sclp.c > +++ b/lib/s390x/sclp.c > @@ -123,6 +123,12 @@ int sclp_get_cpu_num(void) > return read_info->entries_cpu; > } > > +int sclp_get_stsi_parm(void) > +{ > + assert(read_info); > + return read_info->stsi_parm; > +} > + > CPUEntry *sclp_get_cpu_entries(void) > { > assert(read_info); > diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h > index 28e526e2..1a365958 100644 > --- a/lib/s390x/sclp.h > +++ b/lib/s390x/sclp.h > @@ -146,7 +146,8 @@ 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; > uint16_t entries_cpu; /* 16-17 */ > uint16_t offset_cpu; /* 18-19 */ > uint8_t _reserved2[24 - 20]; /* 20-23 */ > @@ -322,6 +323,7 @@ void sclp_console_setup(void); > void sclp_print(const char *str); > void sclp_read_info(void); > int sclp_get_cpu_num(void); > +int sclp_get_stsi_parm(void); > CPUEntry *sclp_get_cpu_entries(void); > void sclp_facilities_setup(void); > int sclp_service_call(unsigned int command, void *sccb); >
On 8/11/21 4:59 PM, Janosch Frank wrote: > On 8/10/21 6:22 PM, Pierre Morel wrote: >> The maximum CPU Topology nested level is available with the SCLP >> READ_INFO command inside the byte at offset 15 of the ReadInfo >> structure. >> >> Let's return this information to check the number of topology nested >> information available with the STSI 15.1.x instruction. >> >> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > > Reviewed-by: Janosch Frank <frankja@linux.ibm.com> > Thanks, Pierre
On Tue, Aug 10 2021, Pierre Morel <pmorel@linux.ibm.com> wrote: > The maximum CPU Topology nested level is available with the SCLP > READ_INFO command inside the byte at offset 15 of the ReadInfo > structure. > > Let's return this information to check the number of topology nested > information available with the STSI 15.1.x instruction. > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> > Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > --- > lib/s390x/sclp.c | 6 ++++++ > lib/s390x/sclp.h | 4 +++- > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c > index 9502d161..ee379ddf 100644 > --- a/lib/s390x/sclp.c > +++ b/lib/s390x/sclp.c > @@ -123,6 +123,12 @@ int sclp_get_cpu_num(void) > return read_info->entries_cpu; > } > > +int sclp_get_stsi_parm(void) > +{ > + assert(read_info); > + return read_info->stsi_parm; Is this a generic "stsi parm", or always the concrete topology nested level? IOW, is that name good, or too generic? > +} > + > CPUEntry *sclp_get_cpu_entries(void) > { > assert(read_info);
On 8/12/21 2:56 PM, Cornelia Huck wrote: > On Tue, Aug 10 2021, Pierre Morel <pmorel@linux.ibm.com> wrote: > >> The maximum CPU Topology nested level is available with the SCLP >> READ_INFO command inside the byte at offset 15 of the ReadInfo >> structure. >> >> Let's return this information to check the number of topology nested >> information available with the STSI 15.1.x instruction. >> >> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> >> --- >> lib/s390x/sclp.c | 6 ++++++ >> lib/s390x/sclp.h | 4 +++- >> 2 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c >> index 9502d161..ee379ddf 100644 >> --- a/lib/s390x/sclp.c >> +++ b/lib/s390x/sclp.c >> @@ -123,6 +123,12 @@ int sclp_get_cpu_num(void) >> return read_info->entries_cpu; >> } >> >> +int sclp_get_stsi_parm(void) >> +{ >> + assert(read_info); >> + return read_info->stsi_parm; > > Is this a generic "stsi parm", or always the concrete topology nested > level? IOW, is that name good, or too generic? It is the name used in the documentation, but for now only the 3 bits 5-7 are used for the maximum value of the selector 2 of the STSI instruction allowed by the machine. > >> +} >> + >> CPUEntry *sclp_get_cpu_entries(void) >> { >> assert(read_info); >
On Thu, Aug 12 2021, Pierre Morel <pmorel@linux.ibm.com> wrote: > On 8/12/21 2:56 PM, Cornelia Huck wrote: >> On Tue, Aug 10 2021, Pierre Morel <pmorel@linux.ibm.com> wrote: >> >>> The maximum CPU Topology nested level is available with the SCLP >>> READ_INFO command inside the byte at offset 15 of the ReadInfo >>> structure. >>> >>> Let's return this information to check the number of topology nested >>> information available with the STSI 15.1.x instruction. >>> >>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >>> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> >>> --- >>> lib/s390x/sclp.c | 6 ++++++ >>> lib/s390x/sclp.h | 4 +++- >>> 2 files changed, 9 insertions(+), 1 deletion(-) >>> >>> diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c >>> index 9502d161..ee379ddf 100644 >>> --- a/lib/s390x/sclp.c >>> +++ b/lib/s390x/sclp.c >>> @@ -123,6 +123,12 @@ int sclp_get_cpu_num(void) >>> return read_info->entries_cpu; >>> } >>> >>> +int sclp_get_stsi_parm(void) >>> +{ >>> + assert(read_info); >>> + return read_info->stsi_parm; >> >> Is this a generic "stsi parm", or always the concrete topology nested >> level? IOW, is that name good, or too generic? > > It is the name used in the documentation, but for now only the 3 bits > 5-7 are used for the maximum value of the selector 2 of the STSI > instruction allowed by the machine. Ok. Reviewed-by: Cornelia Huck <cohuck@redhat.com>
diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c index 9502d161..ee379ddf 100644 --- a/lib/s390x/sclp.c +++ b/lib/s390x/sclp.c @@ -123,6 +123,12 @@ int sclp_get_cpu_num(void) return read_info->entries_cpu; } +int sclp_get_stsi_parm(void) +{ + assert(read_info); + return read_info->stsi_parm; +} + CPUEntry *sclp_get_cpu_entries(void) { assert(read_info); diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h index 28e526e2..1a365958 100644 --- a/lib/s390x/sclp.h +++ b/lib/s390x/sclp.h @@ -146,7 +146,8 @@ 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; uint16_t entries_cpu; /* 16-17 */ uint16_t offset_cpu; /* 18-19 */ uint8_t _reserved2[24 - 20]; /* 20-23 */ @@ -322,6 +323,7 @@ void sclp_console_setup(void); void sclp_print(const char *str); void sclp_read_info(void); int sclp_get_cpu_num(void); +int sclp_get_stsi_parm(void); CPUEntry *sclp_get_cpu_entries(void); void sclp_facilities_setup(void); int sclp_service_call(unsigned int command, void *sccb);