KernelNewbies:

Linux 6.9 was released on Sunday, 12 of May 2024

Summary: This release includes suppor for x86 FRED, which is a new way of transitioning between CPU ring privileves; it also includes support for creating pidfds for threads; support for BPF arenas, which is a sparse shared memory region between the BPF programs and user space; and BPF tokens, which allow delegating functionality to less privileged programs; host support for AMD Secure Nested Paging; support for weighted interleaveing memory policies; support for a FUSE passthrough mode that makes regular file I/O faster; and a new device mapper VDO deduplication target. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. pidfd: pidfds for threads and pidfs

pifds (PID fd, a file descriptor that represents a process) is a concept that was added first in Linux 5.3 to deal with the problems of traditional PIDs, and it has been gaining support in several APIs since then. In this release, pidfds add a few features:

Recommended LWN article: A new filesystem for pidfds

1.2. x86 FRED support

FRED (Fast Return and Event Delivery) is a new architecture on Intel processors that defines simple new transitions that change privilege level (ring transitions). It is a replacement for IDT event delivery on x86 and addresses most of the technical nightmares which IDT exposes.

Documentation

1.3. BPF improvements: arenas and tokens

This new release incorporates, as usual, new BPF features. A couple of features stand out from the rest:

Recommended LWN articles:

1.4. Host support for AMD Secure Nested Paging

AMD EPYC systems utilizing Zen 3 and newer microarchitectures add support for a new feature called SEV-SNP, which adds Secure Nested Paging support on top of the SEV/SEV-ES support already present on existing EPYC systems. This release adds support for acting as a KVM host capable of running SNP guests. One of the main features of SNP is the addition of an RMP (Reverse Map) table to enforce additional security protections for private guest memory.

1.5. Weighted interleaving memory policies

When trying to allocate memory, the kernel has to decide from which node NUMA node it should allocate that memory. The existing memory interleave mechanism does an even round-robin distribution of memory across all nodes. This release provides a weighted interleave mechanism that distributes memory across nodes according to a provided weight, which helps to provide greater use of the total available memory bandwidth.

Recommended LWN article: Weighted interleaving for memory tiering

1.6. Faster FUSE I/O

This release adds a passthrough mode for regular file I/O. This allows performing read and write (also via memory maps) on a backing file without incurring the overhead of roundtrips to userspace. For now this is only allowed to privileged servers, but this limitation will go away in the future.

Recommended LWN article: FUSE passthrough for file I/O

1.7. Slightly faster timer setup

Kernel code uses a lot of timers which are canceled or rearmed before they expire. However, when timers are enqueued a target CPU is choosen, which is wasted time if these timers are not going to be used. In this release, the CPU selection is avoided whenever possible, which makes some hot code paths in the kernel a bit faster in optional cases.

Recommended LWN article: Better CPU selection for timer expiration

1.8. Device mapper VDO deduplication target

This release adds a new device mapper VDO (virtual data optimizer) target which provides block-level deduplication, compression, and thin provisioning. As a device mapper target, it can add these features to the storage stack, compatible with any file system. The vdo target does not protect against data corruption, relying instead on integrity protection of the storage below it.

Documentation: dm-vdo

Documentation: Design of dm-vdo

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Security

9. Networking

10. Architectures

11. Drivers

11.1. Graphics

11.2. Power Management

11.3. Storage

11.4. Drivers in the Staging area

11.5. Networking

11.6. Audio

11.7. Tablets, touch screens, keyboards, mouses

11.8. TV tuners, webcams, video capturers

11.9. Universal Serial Bus

11.10. Serial Peripheral Interface (SPI)

11.11. Watchdog

11.12. Serial

11.13. CPU Frequency scaling

11.14. Voltage, current regulators, power capping, power supply

11.15. Pin Controllers (pinctrl)

11.16. Multi Media Card (MMC)

11.17. Memory Technology Devices (MTD)

11.18. Industrial I/O (iio)

11.19. Multi Function Devices (MFD)

11.20. Pulse-Width Modulation (PWM)

11.21. Inter-Integrated Circuit (I2C + I3C)

11.22. Hardware monitoring (hwmon)

11.23. General Purpose I/O (gpio)

11.24. Leds

11.25. Cryptography hardware acceleration

11.26. PCI

11.27. Thunderbolt

11.28. Clock

11.29. PHY ("physical layer" framework)

11.30. EDAC (Error Detection And Correction)

11.31. Various

12. List of Pull Requests

13. Other news sites

KernelNewbies: Linux_6.9 (last edited 2024-06-01 14:40:27 by diegocalleja)