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

Pressing Play on GStreamer 2023


Sunny Spain will have multimedia developers on speed dial next week for the 11th edition of the GStreamer Conference, taking place at the…

Perfecting Open Source Recipes in Paris


The world-renowned culinary scene in The City of Light will be getting a pack of different types of chefs next week for Kernel Recipes and…

Empowering Open Source at IBC 2023


Collabora is headed to Amsterdam! This year, we will be showcasing some of our recent work on the DAB protocol, as well as the software…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2023. All rights reserved. Privacy Notice. Sitemap.