Re: [PATCH 3/8] s390/entry: shorten OUTSIDE macro

From: Nick Desaulniers
Date: Thu May 12 2022 - 15:25:19 EST


On Thu, May 12, 2022 at 12:15 PM Heiko Carstens <hca@xxxxxxxxxxxxx> wrote:
>
> On Thu, May 12, 2022 at 11:00:31AM -0700, Nick Desaulniers wrote:
> > On Thu, May 12, 2022 at 10:22 AM Heiko Carstens <hca@xxxxxxxxxxxxx> wrote:
> > >
> > > On Wed, May 11, 2022 at 02:05:27PM +0200, Heiko Carstens wrote:
> > > > Since the minimum architecture level has been raised to z10 a shorter
> > > > instruction sequence can be used to implement the OUTSIDE macro. This
> > > > also reduces the number of used registers within that macro to one.
> > > >
> > > > Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
> > > > ---
> > > > arch/s390/kernel/entry.S | 8 +++-----
> > > > 1 file changed, 3 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
> > > > index a6b45eaa3450..e1664b45090f 100644
> > > > --- a/arch/s390/kernel/entry.S
> > > > +++ b/arch/s390/kernel/entry.S
> > > > @@ -169,11 +169,9 @@ _LPP_OFFSET = __LC_LPP
> > > > * @outside_label: jump here if @reg is outside of [@start..@end)
> > > > */
> > > > .macro OUTSIDE reg,start,end,outside_label
> > > > - lgr %r14,\reg
> > > > - larl %r13,\start
> > > > - slgr %r14,%r13
> > > > - lghi %r13,\end - \start
> > > > - clgr %r14,%r13
> > > > + larl %r14,\start
> > > > + slgrk %r14,\reg,%r14
> > > > + clgfi %r14,\end - \start
> > >
> > > Clever me.. slgrk was added with z196, and not z10.
> > > So dropping this patch.
> >
> > How do the version numbers work for SystemZ? Is there a list/reference
> > you could link me to? If it's too deep a rabbit hole, then nevermind,
> > but I would like to learn a little more about the architecture.
>
> If it is only for the machine generations the following links might help:
>
> https://www.ibm.com/support/pages/ibm-mainframe-life-cycle-history
> (see linked pdf for list of machine names)
>
> https://en.wikipedia.org/wiki/IBM_Z
>
> There might be better sources, but that's all I could find right now.

Interesting! Thanks for the links.
I'm guessing in our CI that we should probably pursue testing some of
the newer revisions. Wasn't defconfig updated from z10 to z12 not too
long ago?
So probably
CONFIG_MARCH_Z13
CONFIG_MARCH_Z14
CONFIG_MARCH_Z15
CONFIG_MARCH_Z16

All look like they're still "supported" (and I'm guessing
CONFIG_MARCH_Z10 and CONFIG_MARCH_Z196 are not too much burden to
continue to maintain kernel support for), with a higher emphasis
perhaps on z15+z16?
--
Thanks,
~Nick Desaulniers