The Linux Kernel 5.3 has arrived and it’s a mixed bag of changes, most of which will benefit desktop users. There are, of course, some improvements and features that could eventually bring to life some important steps for cloud and large-scale systems, but 5.3 should mostly be considered a move forward for the desktop world.
Let’s take a look at some of the improvements that could possibly benefit enterprise servers.
One of the single most important improvements that will benefit businesses (especially those who deploy clouds and containers at scale) is that support for 16 million new IPv4 addresses have been added. How this came about was a patch that allows 0.0.0.0/8 as a valid IP address range. Up until kernel 5.3, the 0.0.0.0/8 range was prohibited for two reasons. The first issue was an interoperability with BSD 4.2. That issue was quickly fixed in BSD 4.3, so the problem hasn’t been around since 1986. The second issue is that 0.X.Y.Z addresses were originally defined as a source address in ICMP datagrams. This issue was defined, on page 19 of RFC 0792 as: “This message may be sent with the source network in the IP headersource and destination address fields zero (which means “this” network). The replying IP module should send the reply with the addresses fully specified. This message is a way for a host to find out the number of the network it is on.”
This is an important addition to the Linux kernel, as IPv4 is still widely in use. Even service sites still use IPv4 addressing for so much (especially given the majority of client nodes have yet to implement IPv6 addresses). It should be noted, however, that these addresses were previously reserved for obscure/obsolete reasons. With 5.3, that address space has been made generally usable.
RISC-V and x86 Zhaoxin
Next to the additional IPv4 addresses, the feature that might be of interest to anyone who works in the cloud will be the improvements to RISC-V and the new x86 Zhaoxin processor support. According to Jos Poortvliet, co-founder of Nextcloud, “I personally think the improvements to RISC-V and the new x86 Zhaoxin processor support is interesting — Intel/X86 rules the cloud but there is room for others!”
This is especially true, given the issues that have plagued Intel processors over the last few years. With that cloud hanging over the head of the largest CPU vendor on the planet, it would be nice if other hardware could find its way into the realm of cloud and container computing. RISC-V could be that hardware. With kernel 5.3 RISC-V now has:
- Image header support (which is based on the ARM64 kernel image header).
- Initial page table is now split into two stages.
- CONFIG_SCO support.
- High-resolution timers and dynamic ticks.
- Avoid reserving memory between RAM start and the kernel setup_bootmem().
- Removed long-deprecated gate area stubs.
As for the Zhaoxin processor support, this is a Chinese processor created by a joint venture between VIA and the Shanghai government. The technology is based on VIA’s Isaiah design and makes use of VIA’s x86 license.
There are a few improvements within the file system space that could be of interest to enterprise-level users. One of the improvements could affect businesses of all sizes. Said change comes in the form of faster case-insensitive lookups for EXT4. This feature was originally introduced in kernel 5.2, but now enjoys a significant increase in performance to the tune of around 30% faster lookups, thanks to temporary caching. For any business that relies on technologies like Samba, kernel 5.3 should give that particular sub-system a significant boost in speed.
IoT Gets a Boost
For those that work in the Internet of Things space, there’s something new and shiny coming your way, in the form of support for the ACRN small footprint hypervisor (aka the “Big Little Hypervisor”). This small footprint reference hypervisor is intended for embedded development and includes real-time capabilities and support for multiple guest operating systems.
There are numerous smaller changes, all of which add up to an impressive array of improvements. Included in that list are:
- Allowing NFS clients to set up multiple TCP connections to a server using the new nconnect=X mount option.
- Utilization Clamping (used for asymmetric cores).
- Support for AMD NAVI graphic cards.
- Native F2FS swap file support.
- LZ4 in-place decompression for EROFS.
- Support for Zstd file-system compression in UBI File System (UBIFS).
- Intel UMWAIT support.
- Raspberry Pi CPUFreq driver for Broadcom System-on-a-Chip.
- Intel Speed Select support.
- Support for the Nvidia Turing-based TU116.
Feature image by Paweł Czerwiński via Unsplash.