KernelNewbies:

Linux 6.8 was released on Sunday, 10 March 2024.

Summary: This release includes two new system calls for easier mount management; support for multi-size transparent huge pages in anonymous page faults; data type profiling support in perf which allows to correlate perf events with DWARF information; task scheduler support for better realtime scheduling; an option to forbid users from writing to partitions that are being used by file systems; new system calls to deal with multiple stacked LSMs; and a new driver for Intel Xe graphics. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Deadline servers for better realtime scheduling

Processes placed in the realtime scheduling class can starve other processes in classes with lower priority, which can cause problems. The Linux kernel uses a technique called "RT throttling" to avoid problems, but it not as performant as it could, so in this release the Linux kernel will use the so called "deadline servers", which replaces and improve that.

Recommended LWN article: Deadline servers as a realtime throttling replacement

1.2. Multi-size transparent huge pages for anonymous memory

Anonymous page faults (eg. faults for memory allocated by malloc) are usually done with a 4KB size. Work on [[https://kernelnewbies.org/Linux_5.16#Memory_folios_infrastructure_for_a_faster_memory_management|"folios" ]] now allows to allocate more than 4KB during a single page fault. This release adds support for it, and it also adds support for TBL compresion techniques allowed in modern hardware that allow to map physically contiguous chunks of memory. By default, the existing behaviour (and performance) is maintained. The user must explicitly enable multi-size THP to see the performance benefit.

Recommended LWN article: Large folios for anonymous memory

1.3. Two new syscalls for better mount management: listmount() and statmount()

Modern Linux systems can contain many mounts. Listing them and gathering information about their properties is not as easy as it should. Two new syscalls, listmount(2) and statmount(2) have been added to faciliate this effort.

Recommended LWN article: listmount() and statmount()

1.4. Data type profiling with perf

The perf tool in this release adds a feature called data type profiling , which allows to associate PMU samples to data types they refer using DWARF debug information. It depends on quality of PMU events and compiler for producing DWARF info, but it doesn't require any changes in the target program.

This allows the creation of tools that can do things such as pahole-style structure reordering or packing, but doing so with information about access patterns gathered from perf.

Recommended LWN article: Data-type profiling for perf

1.5. Forbid users from writing to partitions used by filesystems

This release adds a configuration option that forbids wriing to block devices that are being used by a mounted filesystem

Recommended LWN article: Defending mounted filesystems from the root user

1.6. New system calls to deal with multiple stacked LSMs

The Linux kernel added support for stacking security modules in Linux 5.1. LSM-aware applications, however, need some interfaces to get more information about the current LSM configuration. This release adds three new syscalls lsm_list_modules(), lsm_get_self_attr(), and lsm_set_self_attr(). These syscalls were designed to support multiple, simultaneaous (stacked) LSMs from the start as opposed to the current /proc based solutions which were created at a time when only one LSM was allowed to be active at a given time.

Recommended LWN article: Adding system calls for Linux security modules

1.7. Driver for new Intel Xe graphics

This release adds a new driver, Xe, for Intel GPUs that supports both integrated and discrete platforms starting with Tiger Lake (first Intel Xe Architecture)

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Cryptography

9. Security

10. Networking

11. Architectures

12. Drivers

12.1. Graphics

12.2. Storage

12.3. Drivers in the Staging area

12.4. Networking

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus

12.9. Serial Peripheral Interface (SPI)

12.10. Watchdog

12.11. Serial

12.12. CPU Frequency scaling

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

12.14. Real Time Clock (RTC)

12.15. Pin Controllers (pinctrl)

12.16. Multi Media Card (MMC)

12.17. Memory Technology Devices (MTD)

12.18. Industrial I/O (iio)

12.19. Multi Function Devices (MFD)

12.20. Pulse-Width Modulation (PWM)

12.21. Inter-Integrated Circuit (I2C + I3C)

12.22. Hardware monitoring (hwmon)

12.23. General Purpose I/O (gpio)

12.24. Leds

12.25. DMA engines

12.26. Cryptography hardware acceleration

12.27. PCI

12.28. Thunderbolt

12.29. Clock

12.30. PHY ("physical layer" framework)

12.31. EDAC (Error Detection And Correction)

12.32. Various

13. List of Pull Requests

14. Other news sites

KernelNewbies: Linux_6.8 (last edited 2024-05-05 18:54:23 by diegocalleja)