We're hiring!

Kernel 5.16: A new release for a new year

André Almeida avatar

André Almeida
January 20, 2022

Share this post:

Reading time:

What's more refreshing than a new kernel release to start a new year? 2021 was a year with all sorts of challenges, from fighting the pandemic to deep diving complex technical problems. In case you missed it, have a look at our Year in Review for a summary of the accomplishments made by our kernel team over the last year.

With kernel 5.16 made available earlier this month, the community has once again produced a release full of great features, like improving memory management performance via folio's API and better scheduler awareness of CPU topologies that share L2/L3 caches. You can read more about these, and other highlights, over at LWN (part1, part2) and at Kernel Newbies.

More importantly, this latest release sees the culmination of two projects that had been in development for some time by our kernel team. Collaborans contributed both the new futex syscall and the new fanotify event, two new APIs which took long hours of research and cooperation with the kernel development community to come to fruition. It's great to see the hard work of our kernel experts paying off!


futex is a syscall provided by the kernel to allow userspace to implement fast mutexes and other sync mechanisms. However, the current futex interface lacks some modern features ("futex2" is the name of the project to research a new interface), like the ability to wait on multiple futexes at the same time. This is especially useful for Steam's Proton (a tool to run Windows games in Linux), given that it is a nice way to emulate WaitForMultipleObjects() from Windows API.

Through considerable effort, our team implemented a new syscall to enable this behavior which landed in this kernel release: futex_waitv(). This syscall finally enables userspace to wait on multiple futexes at once and will be also used by native game engines to better enable locking patterns from the Windows world. If you would like to learn more about futex, stay tuned for an upcoming blog post series that will take a deep dive into this important system call and how it is used to process synchronization functions.

Notification of file system errors through fanotify

While we, as kernel developers, try to fix as many bugs as possible, users are particularly sensitive to their file systems crashing, as that might cost them their valuable data. For that reason, every file system used in production has tools to try to recover from those crashes. To interact with those tools, we worked on a new fanotify event for error notification, called FAN_FS_ERROR. This will be really useful for cloud providers to enhance their quality of service and better manage their resources. You can read more about it here.

SoC support

As always, we keep improving Linux hardware support. In this release, we enabled hardware video encoding and decoding on sdm630/636/660 platforms, along with fixes for Mediatek, Qualcomm and Hantro platforms. Collabora keeps pushing to increase open source efficiency in the embedded world through our skilled engineers.


Andrej looked again at the driver which enables the use of U2FZero as an entropy source for the random number generator subsystem, and fixed bugs causing occasional freezes during the initial USB communication. He also added support for a hardware variant produced by NitroKey.

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

Authored (77):

Alyssa Rosenzweig (1):

Andrej Shadura (4):

André Almeida (10):

AngeloGioacchino Del Regno (9):

Arnaud Ferraris (2):

Benjamin Gaignard (3):

Boris Brezillon (2):

Dafna Hirschfeld (1):

Daniel Almeida (1):

Enric Balletbo i Serra (7):

Ezequiel Garcia (4):

Gabriel Krisman Bertazi (30):

Martyn Welch (1):

Nicolas Dufresne (1):

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

Maintainer Committed (44):

Enric Balletbo i Serra (10):

Sebastian Reichel (34):

Signed-off-by (28):

André Almeida (16):

Ezequiel Garcia (1):

Gabriel Krisman Bertazi (3):

Sebastian Reichel (8):

Reviewed-by (46):

Alyssa Rosenzweig (2):

André Almeida (15):

Benjamin Gaignard (1):

Boris Brezillon (5):

Dafna Hirschfeld (7):

Daniel Stone (1):

Emil Velikov (1):

Enric Balletbo i Serra (2):

Ezequiel Garcia (5):

Gabriel Krisman Bertazi (1):

Nicolas Dufresne (2):

Pekka Paalanen (1):

Sebastian Reichel (3):

Acked-by (8):

Alyssa Rosenzweig (1):

Daniel Stone (1):

Enric Balletbo i Serra (1):

Helen Koike (3):

Pekka Paalanen (1):

Sebastian Reichel (1):

Tested-by (4):

Corentin Noël (1):

Enric Balletbo i Serra (1):

Martyn Welch (1):

Sebastian Reichel (1):

Reported-by (2):

Gabriel Krisman Bertazi (1):

Martyn Welch (1):


Comments (0)

Add a Comment

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


Search the newsroom

Latest News & Events

Implementing DRM format modifiers in NVK


This week we merged support for the VK_EXT_image_drm_format_modifier extension in NVK, the new open-source Vulkan driver for NVIDIA hardware.…

Kernel 6.9: Enable, test, repeat


Collabora's engineers continue to be involved in the hardware enablement for a few different system-on-chips (SoCs) and platforms, and have…

SteamOS 3.6: How the Steam Deck atomic updates are improving


Highlighting some of the key changes Collabora worked on with Valve to improve the system update tooling on SteamOS, including the move…

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-2024. All rights reserved. Privacy Notice. Sitemap.