Linux 6.2 has been released
Summary: This release includes faster mitigration of the Retbleed vulnerability and a new FineIBT mitigation feature; Btrfs RAID5/6 and performance improvements, sysfs knobs that allow controlling block device writeback, support for TCP Protective Load Balancing, improved Rust support, BPF features like User defined objects, the runtime verification tool, and some optional RCU power savings. As always, there are many other features, new drivers, improvements and fixes.
Faster mitigation of the Retbleed CPU vulnerability, and FineIBT
The Retbleed vulnerability can be fixed with the help of some mitigation techniques. The techniques used until now, however, have a considerable impact on performance. This release implements a new mitigation scheme, a lighterweight software-only fix for Skylake-based cores where enabling IBRS is a big hammer and causes a significant performance impact. This new method can be enabled with the boot option {{{retbleed=stuff}}}
Recommended LWN article: Stuffing the return stack buffer
This release also adds FineIBT (another mitigation feature), a new control flow integrity scheme which is based on the software kCFI implementation and uses hardware IBT support where present to annotate and track indirect branches using a hash to validate them.
Btrfs RAID5/6 and performance improvements
This release adds some reliability improvements for the Btrfs RAID5/6 implementation, some performance improvements for btrfs send, lseek and the FIEMAP ioctl, and automatic enablement of asynchronous discard when possible.
Better control of block device writeback
Writeback (the act of writing modified file data in the background) can sometimes take too much memory. For some kind of block devices, like networking block devices or even USB drives, it can too much. This release adds five new sysfs knobs ({{{strict_limit}}}, {{{min_bytes}}}, {{{max_bytes}}}, {{{min_ratio_fine}}}, {{{max_ratio_fine}}}) under each bdi (block device interface) at {{{/sys/class/bdi/}}} that allow a finer grained control of the writeback mechanism. For more details read the documentation
Add support for TCP Protective Load Balancing
PLB (Protective Load Balancing) has been designed to reduce link load imbalance across datacenter switches. It is a host-based optimization; it leverages congestion signals (e.g. ECN) from the transport layer to randomly change the path of the connection experiencing congestion. PLB prefers to repath after idle periods to minimize packet reordering. It repaths by changing the IPv6 Flow Label on the packets of a connection. It can currently only work for IPv6 traffic. For more information, see the SIGCOMM 2022 paper
BPF features: User defined objects
This release adds support for user defined BPF objects: the use case is to allocate own objects, build own object hierarchies and use the building blocks to build own data structures flexibly, for example, linked lists in BPF
There are other BPF features, like adding {{{bpf_rcu_read_{,un}lock()}}} support for sleepable programs, or support storing struct task_struct objects as kptrs in maps.
The runtime verification tool
The Runtime Verification System, merged on Linux 6.0
This release includes the {{{rv}}} runtime verification tool named. It aims to be the interface for in-kernel rv monitors, as well as the home for user-space controlled monitors
Improved Rust support
Following the initial support in the previous release
Some optional power savings due to improved RCU locking
RCU, a locking technique, has implemented a timer-based RCU callback batching (also known as lazy callbacks), which saves about 5-10% of power consumed in ANdroid/ChromeOS devices due to RCU requests that happen when system is lightly loaded or idle (behind a Kconfig, defaults to off)