December 31, 2015

SLES 12 toolchain module available for Linux on z

SUSE has released the toolchain module for Linux on System z. This is the first officially supported gcc compiler that supports the z13.
To install you need to add the product and update repository with "yast2 repositories" and then you can install it with

# zypper install sle-module-toolchain-release
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 10 NEW packages are going to be installed:
  cpp5 gcc5 gcc5-c++ gcc5-fortran gcc5-locale libgfortran3 libstdc++6-devel-gcc5 patterns-toolchain-gcc5
  sle-module-toolchain-release sle-module-toolchain-release-POOL

The following NEW pattern is going to be installed:

The following NEW product is going to be installed:
  "Toolchain Module"

The following 6 recommended packages were automatically selected:
  cpp5 gcc5-c++ gcc5-fortran gcc5-locale libstdc++6-devel-gcc5 patterns-toolchain-gcc5

10 new packages to install.
Overall download size: 26.2 MiB. Already cached: 0 B  After the operation, additional 136.1 MiB will be
Continue? [y/n/? shows all options] (y): y


As you see you get C, C++ and Fortran. To enable z13 instructions use the -march=z13 option.

December 29, 2015

SUSE Linux Enterprise 12 Service Pack 1 (SLES 12 SP1) released

On December 22nd just in time for Christmas SUSE has released the latest updated to their flag ship server distribution.

The kernel level for 12.1 is kernel-3.12.49-11.1. As one of the top features this distribution is the first one, which allows full exploitation of the z13. And this distribution is so far the only one that's supported by IBM's version of KVM as well as Docker. SUSE has published a nice summary of the the z specific news.
And of course it has many bug fixes. So after the installation be sure to run an update to install the latest fixes from the maintweb. 

Here is my usual summary of links to more information:
A frequently asked question is about the location of the older libstdc++ libraries that are needed for compatibility with older software products. There are two locations:
  • the oldest ones are in a package called compat, that you can install with zypper directly. It has and
  • the libstdc++33 is part of the Legacy Module that SUSE provides. Add it to your repositories with yast2 repositories and then you can install. It contains the
(updated 1/20/2016)

December 18, 2015

Java OpenJDK and Just In Time Compiler (JIT)

Since a while OpenJDK has been available for Linux on the mainframe as an open source Java. In the last week I had two different performance situations with this. The reason is very simple: OpenJDK for z, doesn't have a JIT. So it can be used e.g. for writing an installer but for everything that's repeating the IBM JDK is the only choice.
The effect varies by workload, but it's usually more that one order of magnitude. In the example above showing relative performance for an average workload  the IBM Java does better even without the JIT and with the JIT it's more than a factor of 50! I had to break up the axis to show it in one chart.

December 3, 2015

IBM LinuxONE Community Cloud is open

The Community Cloud announced at LinuxCon is accepting registrations and afterwards you deploy and start your Linux image. Please read the quickstart guide before get going - at least read if you get stuck :-)

If you don't do this, then at least read the invitation email. Here are the top hints:
  • Access is given using a public key - generate it in the Web GUI and then select it for deployment. This is not selected by default and without that key you don't get into the new system! 
  • When you deploy, select the new project assigned to you and not "public" which is the default. You can only work on your project area! 
  • You can only have one Linux server there. So if you want to switch between images, you need to delete the old one first. 
There is also a FAQ available which covers general aspects of this.

Happy testing!

(updated 08/12/2015)

November 23, 2015

Red Hat Enterprise Linux (RHEL) 7.2 released

On November 19th 2015 Red Hat released the next regular update to their flag ship operating system.

The kernel level for 7.2 is kernel-3.10.0-327.el7. The number of technology previews for System z has been greatly reduced, successful testing allows now support for those features.

Here is my usual summary of links to more information:
From a Linux on z Systems perspective this is a major step. This is the first distribution that supports SMT2 natively.So if you install it, you will have twice as many logical CPUs.

(updated 11/23/2015) 

November 12, 2015

Fedora 23 for IBM z Systems released

The new Fedora 23 for z Systems / s390x was released 11/10/2015. Thanks to the Fedora team for making this available! The kernel level is kernel-4.2.3-300.

As usual the download is available from the Fedoraproject site and the respective mirrors and known issues  are covered in the wiki.

October 23, 2015

How long is a mainframe in service?

One of the really nice things about Linux on z is the fact that the underlying hardware has a long life. This means that for complex software solutions that need extensive and expensive testing you can keep the system going over a long time period. The Linux distributions on the mainframe are supporting this model with their long term support contracts.

But how long can you get service? There is a now updated summary presentation out on TechDocs called "IBM Mainframe Life Cycle History" (PPT, PDF). It has a nice overview chart which gives the answer to this question: the average support cycle over the past 21 years has been 11.3 years!

October 22, 2015

IBM Storage Support Matrix (SSIC) updated for Linux on z

This week there has been a major update on the  IBM System Storage Interoperation Center (SSIC). Now in addition to the high end boxes and Flash Systems also many entry and mid range boxes are supported like a V3500, V3700, V5000, V7000. To get a quick view select under connection "FCP (z Systems)":

So for all those systems no SVC is needed any more!

And as a side remark: all the supported tapes are also documented in the SSIC, 

October 12, 2015

Random number generators for Linux on z Systems

For Linux on z Systems there are multiple kernel interfaces to get to (pseudo) random data. First there are the two standard Linux interfaces.
  • /dev/random : blocking interface used for really good random numbers
  • /dev/urandom : nonblocking interface used for everything else
Those interfaces work the same on z Systems as they do on other platforms. However in highly virtualized environments there are really idle servers where nothing is happening. This means that there isn't a lot of entropy generated and therefore /dev/random will block.

On top for z Systems there are two additional interfaces:
  • /dev/prandom : this is a hardware assisted pseudo random number generator using the System z CPACF instructions. To enable it do a modprobe prng. Further details can be found in the "Device Drivers, Features, and Commands" book for upstream, SUSE and Red Hat. In those books search for prng. 
  • /dev/hwrng : this is a true random number generator using the CryptoExpress CCA co-processor function. For this to work, you need the hardware card installed and configured to your Linux. Then a modprobe z90crypt starts it. 
As expected prandom is faster than urandom. But the additional card with the real random number generator is even faster and doesn't use CPU. Obviously when you share the card the throughput will be split between the Linux images.

If your application is written against /dev/random and there isn't enouh entropy in the system, you can refill it by using the rngd daemon. To start it use then command rngd -r /dev/hwrng. Of course you need to install the rng-tools package first. Caveat: you may need to change the service configuration file to point to /dev/hwrng. Or you create the /dev/hwrandom (which is the default for rngd) device node by linking to /dev/hwrng.

September 21, 2015

KVM for IBM z Systems

After the announcement in August, KVM for IBM z Systems is now generally available.  This takes the open source approach for virtualization to the mainframe. 

Here are a few links for further details:
If you encounter any problems, please open a PMR with IBM. 

(updated 12/07/2015)