We're hiring!

Kernel 5.19: Probably the final release of the 5.x series

Cristian Ciocaltea avatar

Cristian Ciocaltea
August 02, 2022

Share this post:

Reading time:

As usual, there are quite a few changes merged into the mainline; among the most interesting are:

  • Arm Scalable Matrix Extension
  • Intel "in-field scan" mechanism for CPU diagnosis
  • initial support for the LoongArch CPU architecture
  • support for running 32-bit binaries on 64-bit RISC-V systems
  • several io_uring subsystem enhancements
  • BIT TCP support for handling huge IPv6/TCP packets
  • Zstd compression support for firmware files
  • AMD's Secure Nested Paging and Intel's Trusted Domain Extensions for enhanced virtualization/containers security

More details about the merge window are available on LWN.net: part 1 and part 2.

Looking at the version history, one may notice the 3.x kernel series ended with version 3.19, while the 4.x series ended at 4.20. As there is no clear naming convention for future kernel versions, it remains to be seen if Linus will decide to end this series with version 5.19 or to extend it to 5.20 or beyond.

Now let us dive into the great contributions made by our team!

SoC support

AngeloGioacchino Del Regno continues his amazing work on improving the support for MediaTek SoCs by providing micro-optimizations for the MediaTek DRM driver, cleanups for MUSB/SPI/I2C, and fixes for the PCI-Express Gen3 controller initialization in order to get WiFi working on the MT8195 Tomato Chromebooks. Additionally, he took care of getting the MT6795 (MediaTek Helio X10) SoC in a usable state, which enables the initial support for a significant number of older smartphones, thus helping with e-waste reduction.

As part of the groundwork on upstreaming the mt8192-based Asurada platform, a lot of dt-bindings were updated by Nícolas F. R. A. Prado. He also fixed a couple of bugs, notably the wrong configuration of the DPI module on mt8192 that prevented it from driving an external display.

Sebastian Reichel is adding support for the new Rockchip RK3588 SoC, with the pin controller support and some bindings having been merged in v5.19. The remaining required changes, the most significant of which is the clock controller, are in progress over the next kernel release(s).

New power-off chaining API

The Linux kernel has had support for chaining system restart handlers for quite some time. It allows multiple power drivers to try restarting a machine one driver after another until one of the drivers succeeds or all fail.

A similar feature was desired in case of a power-off, too since it wasn't possible to turn off some devices properly without relying on power-off chaining.

There have been a few attempts to implement a power-off chaining API in the kernel over the past eight years. Fortunately, the last attempt was successful - the API version developed by Dmitry Osipenko has been merged into the 5.19 kernel.

Video CODECs

Benjamin Gaignard continues his effort to improve Hantro HEVC decoding support and G2 post processor scaling capabilities.

Christopher Obbard enabled video decoding support for Rockchip RK3328 while Nicolas Dufresne added interlaced decoding support to the H.264 frame-based decoders for Hantro and RKVDEC along with some fixes to the H.264 profile and level reporting.

In a significant milestone event, after more than two years of development, the HEVC uAPI will finally be merged in the next kernel version.

Historical Service Timer (HST)

In datacenters, the storage devices are typically exposed through multiple redundant paths to the back-end storage. The Linux kernel provides mechanisms called multipath path selectors which contain the heuristics to decide which path (i.e. physical port) to use when sending a block IO to a storage with multiple connections.

The Historical Service Timer is a recently-merged multipath path selector that uses statistics of past I/O latency of each path to decide the route to use for incoming I/O in redundant environments. Recently, we identified that it didn't perform as well for BIO-based multipath as it did for request-based multipath, due to a precision limitation on the timer sampled for statistics in that mode, which degraded its prediction.

Gabriel Krisman Bertazi provided a patch that introduces the use of a higher resolution timer (nanoseconds) for HST, which results in much better performance for multipath I/O dispatching in this mode.

Here, there, and everywhere

Recently we observed a regression in the Steam Deck kernel where the soft-dirty bit wasn't getting reset after a quick succession of resetting it and checking via procfs. We traced the issue back to a missing TLB flush and learned that it was already fixed upstream by the community. To ensure this bug will never sneak in again, Gabriel Krisman Bertazi and Muhammad Usama Anjum pushed a testcase that reproduced the issue to the kselftest project.

Still related to the Steam Deck, Cristian Ciocaltea investigated and fixed an issue with the AMD SPI controller driver as a prerequisite to enable the sound support for this already well-known device.

Dmitry Osipenko fixed a longstanding "scheduling while atomic" problem in the DRM scheduler code that bothered multiple GPU drivers by occasionally crashing the kernel when closing applications.

Muhammad Usama Anjum added the ChromeOS ACPI device driver, which is a step forward in running mainline kernels on Chromebook devices with all functionalities enabled. Moreover, he made several improvements to the generic Kselftest subsystem.

Additional contributions include improved support for the Sensortek STK3310 ambient light/proximity sensor (Arnaud Ferraris) and the SH SystemMaster (SMM) S2 PRO board (Ariel D'Alessandro), updates to the Qualcomm Snapdragon device tree bindings (David Heidelberg), an optimization around the CrossTalk/SRBDS (CVE-2020-0543) vulnerability in Intel processors (Ricardo Cañuelo), a fix for generating the cscope/ctags database when the kernel is configured to build a large number of modules (Cristian Ciocaltea), media documentation updates (Sebastian Fricke), and more.

Below is a full list of contributions made by Collaborans for the 5.19 release, as recorded in the git commit history:

Authored (136):

AngeloGioacchino Del Regno (26):

Ariel D'Alessandro (1):

Arnaud Ferraris (2):

Benjamin Gaignard (6):

Christopher Obbard (3):

Cristian Ciocaltea (2):

David Heidelberg (4):

Dmitry Osipenko (36):

Nicolas Dufresne (20):

Nícolas F. R. A. Prado (18):

Maintainer Committed (9):

Sebastian Reichel (9):

Signed-off-by (13):

Benjamin Gaignard (1):

Gaël Portay (2):

Muhammad Usama Anjum (1):

Nicolas Dufresne (5):

Sebastian Reichel (4):

Dmitry Osipenko (9):

Gabriel Krisman Bertazi (2):

Muhammad Usama Anjum (4):

Nicolas Dufresne (11):

Nícolas F. R. A. Prado (15):

Sebastian Fricke (17):

Acked-by (11):

Alyssa Rosenzweig (2):

AngeloGioacchino Del Regno (4):

Dmitry Osipenko (2):

Martyn Welch (1):

Nícolas F. R. A. Prado (23):

Ritesh Raj Sarraf (2):

Sebastian Fricke (1):

Reported-by (3):

Muhammad Usama Anjum (1):

Tomeu Vizoso (2):


Comments (0)

Add a Comment

Allowed tags: <b><i><br>Add a new comment:


Search the newsroom

Latest News & Events

Kernel 6.10: Keep the updates coming


The latest kernel 6.10 release brings multiple core changes and updates to BH workqueues. Let's examine the developments implemented by…

Taming the Panthor: OpenGL ES 3.1 conformance achieved on Mali-G610


The Panthor kernel driver and Mesa Panfrost driver combination has achieved official conformance for OpenGL ES 3.1 on the Mali-G610 chip,…

ElectricMaple: Remote-rendering debuts at AWE 2024


Making its debut this week at Augmented World Expo (AWE) in Long Beach, ElectricMaple is an innovative project by Collabora and PlutoVR…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2024. All rights reserved. Privacy Notice. Sitemap.