Linux 5.10 was released
Summary: This new Linux version is a Long Term Support release, and it brings support for a fast commit mode in Ext4 which provides faster fsync(); support for safer sharing of io_uring rings between processes; a new syscall to provide madvise(2) hints for other processes, code patching to allow direct calls to be used instead of indirect calls for improved repotline performance, support for register encryption in AMD's virtualized guests; faster and lean virtio-fs performance; support for ARM Memory Tagging Extension that prevents a number of security issues; and code patching to allow direct calls to be used instead of indirect calls. As always, there are many other new drivers and improvements.
Long Term Support
This release is a Long Term Support release, which means that maintainers will provide bugfixes for this kernel revision for a much longer period of time than for other stable kernel releases.
Ext4 fast commit support, for faster metadata performance
Many applications use fsync(2) to ensure that data is reliably placed on disk. Such operation attempts to synchronize to the disk a few more metadata than expected. In this release, Ext4 will use a novel journaling technique
Recommended LWN article: Fast commits for ext4
Support io_uring restrictions to facilitate secure sharing of rings
Since io_uring was introduced
Recommended LWN article: Operations restrictions for io_uring
Memory hints for other processes
Processes in Linux can use the madvise() system call to inform the kernel about their behaviour in order to get better performance. However, in some platforms (e.g., Android), the information required to make the hinting decision is not known to the process. Instead, it is known to a centralized userspace daemon(e.g., !ActivityManagerService), and that daemon must be able to initiate memory reclaim on its own without any app involvement. To solve the concern, this patch introduces new syscall - process_madvise(2). Basically, it's same with madvise(2) syscall, except that it requires a pidfd of a target process, and for now it supports a more limited set of possible memory hints.
Recommended LWN article: process_madvise(), pidfd capabilities, and the revenge of the PIDs
Faster performance and memory consumption in virtio-fs
virtio-fs was added in Linux 5.4
AMD support for encryption of register in virtualized guests
Linux supports SEV since Linux 4.15
Static calls for improved post-Spectre performance
Static calls are a replacement for global function pointers. They use code patching to allow direct calls to be used instead of indirect calls. They give the flexibility of function pointers, but with improved performance. This is especially important for cases where retpolines would otherwise be used, as retpolines can significantly impact performance. The new APIs are utilized in the x86 perf code, a heavy user of function pointers, where static calls speed up the PMU handler by 4.2%.
Recommended LWN article: Relief for retpoline pain
Support ARM Memory Tagging Extension
Memory Tagging Extension (part of the ARMv8.5 Extensions) provides a mechanism to detect the sources of memory related errors which may be vulnerable to exploitation, including bounds violations, use-after-free, use-after-return, use-out-of-scope and use before initialization errors.
Recommended LWN article: The Arm64 memory tagging extension in Linux