Showing posts from December, 2020

Void PPC goes little-endian ... on 32-bit

It is frequently forgotten that just as 64-bit Power ISA comes in both big-endian (powerpc64, ppc64) and little-endian (ppc64le) variants, you can also have 32-bit little-endian (ppcle) as well as the classic 32-bit big-endian PowerPC most often encountered in Power Mac hardware. But such 32-bit little-endian systems have historically been quite rare (I struggle even to think of any), and distributions supporting them even more so.

So leave it to those wacky VoidPPC developers to not only spin a ppcle variant, but to even make it useful. It should be pointed out that such a distribution can run on little-endian OpenPOWER because there isn't the massive gulf between 32-bit and 64-bit PowerPC like there would be for x86 and x86_64. Accordingly, Daniel Kolesa demonstrated on Twitter a Blackbird running Void Linux but 32-bit little endian. Why do this on a 64-bit capable platform? Because it allows you to run certain 32-bit specific emulation systems like Box86 that due to their design don't run on 64-bit platforms (especially as Void is a 4K page system). And, true to form, the Blackbird was running Unreal Tournament 32-bit through Box86 at "fairly playable speed" — a game which was only ever made available for Linux as a 32-bit x86 binary (the PowerPC binaries were only for MacOS and Amiga). Such a feat with apparently acceptable performance is even more impressive given that Box86 doesn't have JIT support for ppcle either.

The ppcle spin (both glibc and musl variants) is already listed on the stats page and the port should be available shortly. Because of the unusualness of the architecture, cross-compilation depending on LLVM (and things that use it like Rust) may not yet work, but a significant slice of ports appear to already be built.

Linux 5.10

Linus Torvalds has tagged Linux 5.10, which will be the next long term support release. Despite a relatively small merge window, it includes nearly 14,000 commits.

Big new features in 5.10 include an ext4 performance improvement by reducing the amount of journal metadata written for crash recovery (unfortunately this feature right now needs to be enabled at the time the volume is mkfsed), secure ring sharing for io_uring, an API for manager processes to supply memory hints to other processes (I'm sure that won't be abused by anyone), support for static calls with in-place code patching as a better post-Spectre function pointer replacement than retpolines, widened timestamps on xfs to handle Y2038 (this wasn't already a thing? but requires explicit transitioning of old filesystems), lots of BPF improvements and many new drivers.

On the Power ISA specific side, 5.10 adds further support for POWER10 (shallow stop states and new watchpoint features), a fix for the three of you using a POWER9 in HPT mode with 4K pages and more than 16TB of RAM (or RAM attached to a second node), a filter for RTAS firmware calls to protect kernel memory, and better topology-aware scheduling on POWER9 and POWER10.

The saddest thing announced in this kernel, however, is the end of support for the original PowerPC 601. This is understandable as the 601 was always intended as a stepping-stone CPU and had important differences from classic PowerPC as later implemented in the 603, which had to be accounted for in system software. Nevertheless, if you've still got a Power Mac 6100 in your closet running Linux, your last call in LTS kernels is 5.8 (or 5.9, if you need the features).

There is no CentOS 8, there is only Stream

When IBM bought Red Hat in 2018 (who of course maintains Red Hat Enterprise Linux as a paid product and Fedora as its free community upstream, and since 2014 the de facto free version of RHEL, CentOS), as a Fedora user since it first booted on the Talos II, I had high hopes that finally OpenPOWER would be a first-class citizen on par with x86_64 under IBM's hopefully gentle goading. No more of this being in the alternative architectures penalty box for Fedora Workstation, for example. The idea was that IBM would see Red Hat's free open products as a logical extension of OpenPOWER and exploit the obvious synergy by having a free distribution available as a preferred choice on an open platform (and then the customers who want greater support and enterprise features could pony up). Win-win, right?

Well, first-class OpenPOWER Fedora still hasn't happened, and while RHEL remains perfectly happy to take your POWER8/POWER9 money, CentOS — or at least CentOS the way you've understood it, i.e., RHEL without the price or support contracts — is dead. There is no CentOS, there is only Stream (after 2021, that is, though CentOS 7 will finish its lifecycle as usual).

Let's be a little less handwringy, though, as Red Hat could have done a better job explaining what this means. As I so presciently determined back in 2019, Stream was clearly positioned as the "public beta" for RHEL and, at that time, for CentOS. It still is; this "merely" means there will be no stable channel. I also presciently determined in that 2019 article that there would be a relatively small slice of people who want "just enough" innovation compared to us on the bloody (Fedora) or bleeding (Rawhide) edge, but still prefer somewhat more current updates than those on regular RHEL or CentOS. Unexpectedly, Red Hat appears to have solved this problem by just eliminating classic CentOS. But people willingly pay good money for RHEL — or, you know, use CentOS — because stuff doesn't break much. Stream eliminates that "doesn't break" guarantee, as much as a free distribution could make such a guarantee in the first place, though it's definitely much less churn than Fedora and for many users will still fill the bill. Unlike Fedora, on CentOS Stream 8 you won't be forced to dogfood Stream 9 any earlier than an RHEL 8 user would be, though you may be forced to deal with 8.x.

There are certainly other RHEL downstreams because there must be (it must be open: that's how CentOS started in the first place). Amusingly, some of these are other proprietary vendor Linuces (Oracle Linux, Hewlett-Packard Enterprise ClearOS, etc.). But, and now getting to the OpenPOWER specific portion of this article, none of the free (as in beer) options run on POWER8 or POWER9. Springdale Linux, one of the few free rebuilds, is strictly x86, and Oracle Linux is free to download but only supported on aarch64 and x86_64 (sorry, SPARC). ClearOS is free but stuck on RHEL 7 and doesn't run on OpenPOWER either, and while CloudLinux claims to run on anything RHEL does, it costs money, so you might as well run RHEL unless you need its specific value-added features. [UPDATE: CloudLinux is now announcing a free community version in Q1 2021. No word on OpenPOWER support, but we're hopeful. Thanks Dimitris Z for reporting it.]

That leaves the recently announced Rocky Linux, led by Gregory Kurtzer, founder of the CentOS project. Rocky Linux aims to basically be what CentOS was originally: a downstream build of RHEL, without the branding or the fees. But all it is right now is an idea and no downloads are available, nor any indication that OpenPOWER will be supported, at least not as of this writing. When they come to a decision on that you'll hear it here first.

On the whole this announcement is probably of little concern for people using their OpenPOWER machines as workstations, because most of those that run a Red Hat derivative are probably running Fedora (yours truly included). A few will be running CentOS Stream, but that isn't going anywhere. Where this hurts is those individuals who wanted the superstability of CentOS without the supercost of RHEL, and that probably applies to a substantial number of people running OpenPOWER servers in high-availability environments. Many of these people will still be reasonably well served by Stream, but a few are so risk-averse that even Stream's small amount of turnover won't do for them either. That's no skin off IBM's nose because they'd rather have them as customers paying support fees, but it's not a good look for free computing, and it's not a good look for Red Hat specifically.

Which brings me to another prediction I made: "our worry is that the IBM monolith will affect Red Hat far more than the other way around." Is it my curse to always be right?

Where's Axon?

Last year, before a rampaging virus ate the globe (we're told the locusts are coming as this article goes to press), IBM announced more details on what would be the last iteration of POWER9 at the OpenPOWER Summit, the "Advanced I/O" flavour variously codenamed POWER9 AIO, POWER9 Prime, Axon and (in a few places) Axone. As POWER10 neared availability, the final POWER9 generation was due to come out in 2020, but now into the beginning of December there's no such chip. So what happened?

Axon, as it happens, was in the roadmap under various names for quite awhile. IBM has always prioritized bandwidth as a market discriminant against commodity x86 hardware, and memory bandwidth and I/O are two things IBM POWER chips have in spades. To maintain this competitive advantage, in 2018 IBM announced POWER9 AIO with OpenCAPI 4.0 (up from 3.0 in the Nimbus-class POWER9 CPUs in this Raptor Talos II workstation), NVLink 3.0 (up from 2.0), plus CAPI 2.0, 48 PCIe 4.0 lanes and up to 350GB/s of memory bandwidth (compared to "just" 150GB/s in Nimbus, and 210GB/s in Cumulus with Centaur memory buffers). Back then it was slated for 2019; POWER10 was due in "2020+".

That date obviously slipped, so IBM came back in 2019 and announced AIO remained on the roadmap but this time for 2020 with a memory bandwidth of 650 GB/s using the new Open Memory Interface; instead of putting the Centaur buffers on the board, OMI now allows RAM vendors to put them right on the DIMMs. Again with an eye to their biggest competitive advantage, IBM promoted it as a "Bandwidth Beast" and gave it the name "AXON": "the ‘AX’ representing [symmetric multiprocessing and up to 24 SMT-4 cores], ‘O’ representing OpenCAPI and the ‘N’ representing NVLink. Think neuron-to-neuron axon connections in the brain," according to Jeff Stuecheli, POWER hardware architect. The variety of available interconnects was clearly positioned to succeed both the current scale-out Nimbus and scale-up Cumulus POWER9s and squeeze one more processor generation out of the hardware.

IBM may sometimes be overly bureaucratic but they don't generally leave money on the table, and if demand existed for such a product odds are they'd deliver. However, while the memory bandwidth is considerably greater, this would only happen with an OMI system which would put stress on both IBM and vendors like Raptor and Tyan to produce them, so blame COVID-19: no one really wants to be in the business of producing a stopgap design in the middle of a pandemic when their currently shipping systems are already imperiled by supply chain issues. Likewise, while OpenCAPI 4.0 and NVLink 3.0 are a nice bump, they're not enough on its own to justify that sort of investment when the identical node size suggests no improvements in raw compute (and, as probable confirmation, both Cumulus and Axon are described with the identical phrase "enhanced microarchitecture").

So what happened to Axon? 2020 happened. Ordinarily one could phone in such an upgrade but by now there's obviously not enough money in another go-around and the systems that would take best advantage of it don't and won't exist. For those of us on OpenPOWER workstations, our upgrade path for at least the next year is more cores with differently binned chips that don't require anything more than a board that can support their power and cooling requirements. POWER10 would require more design investment than POWER9 Axon, but not a lot more by comparison, and that investment is justified by the more and better reasons to buy a POWER10 server (assuming the openness issues are resolved) than there would be to buy this; furthermore, IBM is already integrating Axon's improvements into POWER10's communication fabric and marketing it as PowerAXON, making POWER9's iteration of it superfluous. These are powerful systems that vendors can actually sell, even in a down economy. At 7nm and with ISA enhancements, PCIe 5 and OMI out of the box, POWER10 should be faster and beefier all around, and it will certainly be more than Axon would have been.