Linux Kernel 5.16 Brings Tidings of Memory Management, 8K Video
The release of Linux Kernel version 5.16 has suffered a slight delay. Said delay was St. Nick and the holiday season. This is fairly typical, as, during the months of November and December, development on the Linux kernel does slow down. To that, Linux keeper Linus Torvalds wrote:
With the holidays coming up, things are probably going to slow down both on the development and testing front, and as a result, I expect that I will also extend the [release candidate] series by another week not because it’s necessarily needed (too early to tell, but doesn’t feel that way), but simply because nobody will want to open the next merge window immediately in the new year.
So, if you were hoping Santa Claus would leave you a shiny new kernel in your stocking, you’re going to be disappointed to find that particular repository a bit empty.
Fret not, that new kernel will be here soon after the holidays.
But what does it promise? Truth be told, there are no show stoppers in this release. That being said, kernel 5.16 won’t be one to shrug off. Why? Because there’s plenty of new hardware support and features to get excited about.
Let’s unwrap that give and find out what’s hidden underneath that shiny paper.
CPU Changes and Additions
There’s really not too much to get excited about with regards to processors. The biggest addition is that Intel’s Advanced Matrix Extensions support is finally stable. This new extension (for x86 chipsets) introduces a unique and performant approach to matrix operations, which is a linear algebraic operation that is frequently used to demonstrate the high-performance capabilities of GPUs. That addition, of course, should have considerable ramifications for cloud native development that depends on GPU technology for running heavier loads.
Although not directly CPU related, there’s a new addition called Memory Folios, which is a new memory management system that offers a more efficient and type-safe method to specify head of a group of pages instead of page pointers,
compound_head() and friends. According to Matthew Wilcox, Oracle developer and long-time Linux kernel contributor, Memory Folios will “allow filesystems and the page cache to manage memory in larger chunks than PAGE_SIZE” Wilcox adds, “Real workloads (eg building the kernel, running Postgres in a steady-state, etc.) seem to benefit between 0–10%.”
Other CUP-centric additions include:
- Crucial updates for RISC-V architecture will enable support for the open-source Nouveau NVIDIA driver.
- The first patch has been introduced for Intel’s next-gen Raptor Lake CPUs.
- Support for the Raspberry Pi Compute Module xxx, which enables mainline kernel support without the addition of separate drivers.
- Massive improvements for ARM architecture.
- The Apple M1 PCIe and GPIO driver has been mainlined, which brings us closer to Linux on M1-based Apple hardware closer than ever.
- Samsung’s ExynosAutov9 (for vehicles) sees its first-ever introduction into the kernel.
- Support for Rockchip RK3566 and RK3688 SoC boards has been added.
One of the more exciting new features to be added to the kernel is the addition of support for the next-gen GPU which will finally adopt DisplayPort 2.0, a new video standard to support high resolution (8k) video displays. Granted, this is just initial support for the technology. It’s also worth noting that there are hints of this for both Radeon RX 6000 and Intel (as the Intel developers have released some patches to provide DisplayPort 2.0 for their drivers as well). Hopefully, this means DisplayPort 2.0 might come to fruition in Linux sometime in the coming year.
Other additions/improvements include:
- Support for Alder Lake S graphics is now stable.
- PCI IDs for Intel DG1 is now supported and the initial work for DG2 graphics cards has been added (with Intel DG2/Alchemist graphics cards launch coming in 2022).
- Support for AMD graphics card USB4 has been introduced.
- Latest updates for AMD Yellow Carp and Cyan SKillfish.
- Video Core Next (VCN) priority processing (AMD’s next-gen accelerator for video decoding and encoding).
- AMD is introducing a new method of identifying hardware by migrating from the traditional PCI ID to a more IP table-based approach.
- Intel’s Protected Xe Path (PXP) support has been added.
The rest of the additions/improvements to the Linux 5.16 kernel are a mixed bag of excitement and include things like:
- Better support for Sony Playstation 5.
- Improved support for HP Omen laptops.
- Numerous ASUS motherboards now have working sensors by way of HWMON.
- Apple Magic Keyboard 2021 support.
- System76 has added patches to improve fan speed, performance, and function keys for their laptops.
- Support added for headset Mic on Lenovo ALC897 platform.
As per usual, there have also been a number of fixes applied to the new kernel with cover a wide range of issues, such as fixing device recovery failed issue for bus:
mhi: pci_generic, fixing possible list corruption for unexpected command failure for
nvmet-tcp, fixing use-after-free when disconnecting a reconnecting control for NVMe memory controller, avoiding failures due to reserved HyperTransport region for
selftests: KVM, fixing a possible memory leak in
__create_synth_event() error path for tracing, fixing releasing unallocated memory in dereg MR flow for RDMA/mlx5, Fix a potential memory allocation issue in ‘
irdma_prm_add_pble_mem()‘ for RDMA/irdma, and many more.
As per the usual warning, although you will very soon be able to download and install this new kernel, your best bet for production machines would be to hold off until your distribution maintainer makes it available within their repositories (so you can be sure everything functions as expected). On top of that, if you compile the kernel yourself, it won’t be available for upgrade via your distribution package manager.
For more information on the Linux 5.16 kernel, read through the entire changelog. Once the full release is available, you’ll be able to download it from kernel.org.