André Almeida
January 20, 2022
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.
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.
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.
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):
Enric Balletbo i Serra (10):
Sebastian Reichel (34):
André Almeida (16):
Ezequiel Garcia (1):
Gabriel Krisman Bertazi (3):
Sebastian Reichel (8):
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):
Alyssa Rosenzweig (1):
Daniel Stone (1):
Enric Balletbo i Serra (1):
Helen Koike (3):
Pekka Paalanen (1):
Sebastian Reichel (1):
Corentin Noël (1):
Enric Balletbo i Serra (1):
Martyn Welch (1):
Sebastian Reichel (1):
Gabriel Krisman Bertazi (1):
Martyn Welch (1):
09/12/2024
Collabora will be at NeurIPs this week to dive into the latest academic findings in machine learning and research advancements that are…
05/12/2024
Now based on Debian Bookworm, Apertis is a collaborative OS platform that includes an operating system, but also tools and cloud services…
03/12/2024
Initial support for Rockchip's RK3576, a new SoC introduced earlier this year, has landed in Linux kernel 6.12. With the main target being…
Comments (0)
Add a Comment