Re: Upgrading the minimum required s390x CPU to z10?

2016-06-02 Thread Stephen Powell
On Wed, Jun 1, 2016, at 11:39, R P Herrold wrote:
> 
> IBM upstream has moved the 'enterprise' distributions to the 
> even later z196 level about three years ago, via the -march 
> option.  They made no secret of their intention to 'end the 
> life' of earlier hardware main-line support, even if it was 
> not well communicated outside of 'enterprise' circles
> 
> One could speculate why, but ... why bother.  Chopping off the 
> legacy tail gets rid of easy conversions and substitution 
> replacement by Hercules rather than zPDT, and so drives more 
> of the remaining 'paying customer' pot either off of Z (to 
> Power, or distributed)

Less than a year ago, I reported a problem to IBM regarding a kernel
crash on pre-z10 processors, and they produced a fix for it.

(See 
https://git.kernel.org/cgit/linux/kernel/git/s390/linux.git/patch/?id=0b991f5cdcd6201e5401f83ca3a672343c3bfc49.)

So, for Linux they are still supporting the entire z/Architecture line.
Of course, it's no secret that they want their customers to keep
buying their newer models every few years.  For their own proprietary
64-bit operating systems, such as z/VM, they start cutting off
older hardware.  We still run z/VM 5.4.0 because it is the last
release of z/VM that still supports our z/890.  Starting with
z/VM 6.1.0, a z10 or newer is required.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



Re: Upgrading the minimum required s390x CPU to z10?

2016-05-31 Thread Kurt Roeckx
On Wed, Jun 01, 2016 at 05:51:56AM +0200, Kurt Roeckx wrote:
> On Tue, May 31, 2016 at 07:23:00PM -0400, Stephen Powell wrote:
> > On Tue, May 31, 2016, at 18:25, Aurelien Jarno wrote:
> > > 
> > > That's indeed the right way to do it (and to fix the issue), but the
> > > point is that developers using GCC defaulting to z10 or higher don't
> > > realize they can't use the corresponding instructions, so that has to
> > > be fixed later.  Latest example is openssl.
> > > 
> > 
> > Hmm.  I see two possibilities here.
> > 
> > (1) The source code package uses a GCC option that specifies that the
> > compiled object code is to run on a z10 processor.  The fix here is
> > rather simple and straightforward: change the GCC option to specify a
> > z800/z900, then re-build the package.  The compiler will now generate
> > object code that is compatible with all z/Architecture processors.
> > 
> > (2) The so-called "C" source code bails out to assembly language in places,
> > and some instructions are used which aren't supported on a z800/z900.
> > (I've mainly seen this in s390-specific kernel modules.)  In this case, the
> > fix is more involved.  You have to find the offending code, insert a
> > facility check to make sure the instruction is supported first, then
> > decide how to handle the case where it isn't.  This is much more labor
> > intensive.
> > 
> > Which case are you talking about?  (I must confess that I haven't looked
> > at the source code for openssl.)
> 
> OpenSSL has a lot of hand written assembler.  It's actually the
> linker that complained about it.

That should obviously be the assembler, not linker.


Kurt



Re: Upgrading the minimum required s390x CPU to z10?

2016-05-31 Thread Kurt Roeckx
On Tue, May 31, 2016 at 07:23:00PM -0400, Stephen Powell wrote:
> On Tue, May 31, 2016, at 18:25, Aurelien Jarno wrote:
> > 
> > That's indeed the right way to do it (and to fix the issue), but the
> > point is that developers using GCC defaulting to z10 or higher don't
> > realize they can't use the corresponding instructions, so that has to
> > be fixed later.  Latest example is openssl.
> > 
> 
> Hmm.  I see two possibilities here.
> 
> (1) The source code package uses a GCC option that specifies that the
> compiled object code is to run on a z10 processor.  The fix here is
> rather simple and straightforward: change the GCC option to specify a
> z800/z900, then re-build the package.  The compiler will now generate
> object code that is compatible with all z/Architecture processors.
> 
> (2) The so-called "C" source code bails out to assembly language in places,
> and some instructions are used which aren't supported on a z800/z900.
> (I've mainly seen this in s390-specific kernel modules.)  In this case, the
> fix is more involved.  You have to find the offending code, insert a
> facility check to make sure the instruction is supported first, then
> decide how to handle the case where it isn't.  This is much more labor
> intensive.
> 
> Which case are you talking about?  (I must confess that I haven't looked
> at the source code for openssl.)

OpenSSL has a lot of hand written assembler.  It's actually the
linker that complained about it.

On various arches we do detect on which CPU we're running, not
sure we already do that, or need to, on s390x.


Kurt



Upgrading the minimum required s390x CPU to z10?

2016-05-31 Thread Aurelien Jarno
Hi all,

The Debian s390x port currently defaults to the z900 instruction set. It 
appears that an increasing but small number of packages use z10 assembly 
code, and need to be patched to be built on Debian. I therefore wonder if
it is time to switch the default ISA to z10 (which is the maximum we can 
do with out current build daemons and porterbox). Of course that will be
done in testing/unstable, so people using older machines can still use
jessie.

Any opinion on that?

Aurelien


-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net


signature.asc
Description: PGP signature