KernelNewbies:

Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status or the Linux Kernel mailing list (there is a web interface in www.lkml.org or lore.kernel.org/lkml). The lore.kernel.org/lkml/ archive is also available via NTTP if you prefer to use a newsreader: use nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel for that. List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!

You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.

Linux 6.15 was released on Sunday, 15 May 2025.

Summary: This release includes a number of VFS improvements, such as mount notifications, allow creating idmapped mounts from idmapped mounts, support creating detached mounts from a detached mount, allow mount detached mounts on detached mounts, and support detached mounts in overlayfs. There is also support for latency profiling in perf, io_uring networking support for zero-copy receive, a fwctl subsystem to standarize firmware management, bcachefs improvements such as scrub, and support for broadcast TLB invalidation using AMD's INVLPGB instruction. As always, there are many other features, new drivers, improvements and fixes. Also, you might be interested in the LWN merge window report: part 1, part 2

1. Prominent features

1.1. Mount notifications

This release includes an API to listen for mount topology changes without requiring looking at /proc/<pid>/mountinfo. A mount namespace file descriptor can be supplied and registered with fanotify() to listen for mount topology changes.

Currently notifications for mount, umount and moving mounts are generated. The generated notification record contains the unique mount id of the mount, which can then be used with listmount() and statmount().

1.2. Allow creating idmapped mounts from idmapped mounts

In previous releases it wasn't possible to allow the creation of idmapped mounts from already idmapped mounts. This release adds a new system call, open_tree_attr() which works just like open_tree() but takes an optional struct mount_attr parameter.

1.3. Support creating detached mounts from a detached mount

Currently, detached mounts can only be created from attached mounts. This limitaton prevents various use-cases. For example, the ability to mount a subdirectory without ever having to make the whole filesystem visible first. This release removes this limitation.

1.4. Allow mount detached mounts on detached mounts

Currently, detached mounts can only be mounted onto attached mounts. This limitation makes it impossible to assemble a new private rootfs and move it into place. Instead, a detached tree must be created, attached, then mounted open and then either moved or detached again. This release lifts this restriction.

1.5. Support detached mounts in overlayfs

Since last cycle, overlayfs supports specifying layers via file descriptors. However, it does not allow detached mounts which means userspace cannot user file descriptors received via open_tree(OPEN_TREE_CLONE) and fsmount() directly, they have to do dirty tricks. This release allows to directly use detached mounts.

1.6. Support for broadcast TLB invalidation using AMD's INVLPGB instruction

This release adds support for the INVLPGB instruction on AMD systems that support it (Zen 3 and later). It allows the kernel to invalidate TLB entries on remote CPUs without needing to send IPIs, without having to wait for remote CPUs to handle those interrupts, and with less interruption to what was running on those CPUs. If you didn't understand any of these words, it means better overall performance.

1.7. Support for latency profiling in perf

This release introduces latency profiling using scheduler information. The latency profiling is to show impacts on wall-time rather than cpu-time. By tracking context switches, it can weight samples and find which part of the code contributed more to the execution latency.

An example (after pasing --latency to perf record):

       $ perf report -s comm
       ...
       #
       # Overhead   Latency  Command
       # ........  ........  ...............
       #
           78.97%    48.66%  cc1
            6.54%    25.68%  python3
            4.21%     0.39%  shellcheck
            3.28%    13.70%  ld
[...]

You can see latency of cc1 is around 50% and python3 and ld contribute a lot more than their overhead.

1.8. io_uring networking support for zero-copy receive

This release adds support for zero-copy receive with io_uring, enabling fast bulk receive of data directly into application memory, rather than needing to copy the data out of kernel memory. While this version only supports host memory as that was the initial target, other memory types are planned in the future as well.

This release also adds support for reading epoll events via io_uring. While this may seem counter-intuitive (and/or productive), the reasoning here is that quite a few existing epoll event loops can easily do a partial conversion to a completion based model, but are still stuck with one (or few) event types that remain readiness based.

1.9. New fwctl subsystem to standarize firmware management

fwctl is a new subsystem intended to bring some common rules and order to the growing pattern of exposing a secure FW interface directly to userspace. Unlike existing places like RDMA/DRM/VFIO/uacce that are exposing a device for datapath operations fwctl is focused on debugging, configuration and provisioning of the device.

Documentation: fwctl subsystem

1.10. bcachefs improvements

This release adds some important features to the bcachefs filesystem, like scrubbing and support for blocksize greater than page size, and casefolding support. This requires a number of disk format changes.

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. Power Management

12.3. Storage

12.4. Networking devices

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus

  • Add eUSB2 descriptor and parsing in USB core commit

  • Backport mctp over usb binding (cover), commit, commit

  • Introduce dwc3 support for exynos7870 (cover), commit, commit

  • dwc3: Avoid using reserved EPs (cover), commit, commit, commit, commit

  • misc: onboard_dev: add vdda support for Microchip USB2514 commit

  • serial: ftdi_sio: add support for Abacus Electrics Optical Probe commit

  • serial: option: add Sierra Wireless EM9291 commit

  • serial: simple: add OWON HDS200 series oscilloscope support commit

  • typec: Add new driver for Parade PS8830 Type-C Retimer (cover), commit, commit

  • typec: ucsi: Enable UCSI commands in debugfs commit

12.9. Serial Peripheral Interface (SPI)

12.10. Watchdog

  • lenovo_se30_wdt: Watchdog driver for Lenovo SE30 platform commit

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. Hardware Random Number Generator (hwrng)

12.26. Cryptography hardware acceleration

12.27. PCI

12.28. Non-Transparent Bridge (NTB)

  • ntb_hw_amd: Add NTB PCI ID for new gen CPU commit

12.29. Clock

12.30. PHY ("physical layer" framework)

12.31. EDAC (Error Detection And Correction)

12.32. Accel

12.33. Various

13. List of pull requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2025-06-02 21:10:59 by diegocalleja)