
After two months of development, Linus Torvalds presented announced the release of the kernel Linux 7.1Some of the most notable changes include: a new ntfsplus driver, the first phase of deprecating support for the i486 CPU, the removal of old Ethernet adapters, the removal of ISDN and AX.25 protocols, the Intel FRED mechanism enabled by default, support for BPF handlers in io_uring, optimization of the swapping subsystem, support for sub-schedulers in sched_ext, zero-copy I/O in the ublk driver, the ioctl shutdown operation in Btrfs, dynamic performance mode switching in the amd-pstate driver, and xattr support for Unix sockets.
The new version includes 17,275 fixes from 2,589 developers, with a patch size of 57 MB (the changes affected 13,528 files, adding 751,785 lines of code and removing 405,916 lines). The previous release had 15,624 fixes from 2,477 developers, with a patch size of 56 MB. About 41% of all changes presented in 7.1 are related to device drivers, approximately 12% pertain to updates of architecture-specific code, 14% are connected to the networking stack, 5% involve file systems, and 3% are related to internal kernel subsystems.
The main innovations in kernel 7.1 (kernelnewbies.org, lwn.net, opennet):
Disk subsystem, input/output, and file systems
- A new implementation of the NTFS file system — ntfsplus, based on the code of the classic ntfs driver that has been removed from the kernel. The old driver has been reworked, expanded with data writing capabilities, and adapted to support modern features such as the use of (folios) instead of the buffer_head structure. The new driver implements delayed block allocation, achieving high performance for write operations and reduced fragmentation. The library is utilized for buffered write/read operations, direct I/O, extent mapping, and page write/read operations memory folios . In iozone tests, the ntfsplus driver proved to be 3-5% faster than ntfs3 in single-threaded mode and 35-110% faster when using 4 threads. The read speed of ntfsplus and ntfs3 is approximately on par. The ntfs3 driver remains part of the kernel and receives iomapfixes and minor improvements. optimizations have been made Support for generating and verifying data integrity checks
- T10 (deepwiki.com) at the file system level rather than the block device level, which allows for improved read operation performance. In the block device driver
- ublk ublk, allowing the specific logic to be offloaded to the process side in the user space, has added support for I/O through shared memory without copying data between buffers (zero-copy mode).
- For self-encrypting block devices SED-OPAL added ioctl for mode management Single User and the STACK_RESET command has been implemented.
- In Btrfs, stable support for the ioctl operation shutdown has been declared, allowing the file system to enter a state where an attempt is made to complete already started operations while blocking all new operations.
- In exfat, the ability to reserve empty areas through the call fallocate() has been implemented.
- In the CIFS file system, support for creating temporary files with the flag O_TMPFILE has been added.
- In the system call fsmount() the FSMOUNT_NAMESPACE option has been added, creating a new namespace of mount points for the mounting file system. Flags have been added to the system calls clone3() and unshare() to return a new namespace of mount points containing only a mounted empty FS stub based on nullfs, and the fs-dax driver with a FS interface to DAX (Direct Access) devices.
- In the NFS server has added protection against file descriptor guessing attacks, implemented through cryptographic signature sealing of descriptors. Protection is enabled via the mount option sign_fh.
- Added a character driver fs-dax, providing an interface for interacting with devices DAX (kernel.org) (Direct Access), supporting operation bypassing the page cache. The specified interface is necessary for integration into the file system kernel famfs, hosted in memory.
- In the Ceph file system is implemented metric collection for I/O in relation to subdivisions.
Memory and system services
- Accepted The first series of changes to discontinue support for i486 processors. Options for building the kernel with support for 486DX, 486SX, and AMD ELAN processors (CONFIG_M486, CONFIG_M486SX, and CONFIG_MELAN) have been removed from Kconfig, and compilation options for i486 systems (-march=i486) have been excluded from the Makefile. Code for actual support on i486 processors has been left in the kernel for now, but building for such systems will now require applying patches to the build files. The reasons for removing support for i486 processors are due to the desire to rid the kernel of complicated code that emulates certain hardware operations, such as CX8 (compare and exchange 8 bytes) and TSC (CPU cycles counter used in the task scheduler).
- In the amd-pstate driver, used for managing power consumption on systems with AMD processors, implemented dynamic switching of performance settings and changes to power management behavior depending on whether running on AC power or battery. When connected to a power source, performance mode is now activated, and when running on battery, balance_performance is activated.
- The mechanism is enabled by default, Intel FRED (Flexible Return and Event Delivery), which enhances efficiency and reliability in delivering information about low-level events. Performance gains and latency reductions are achieved by returning events using the IRET processor instruction instead of passing events through the IDT (Interrupt Descriptor Table). Reliability is improved by separately handling the arrival of events in the kernel context and the user context, protecting against nested NMI execution and saving all CPU registers related to the exception in an extended stack frame.
- In the perf subsystem, has added support for memory performance monitoring units (PMU) used in NVIDIA Tegra410 SoCs has been added.
- Futex operation execution has been accelerated on ARM systems by utilizing Arm 9.6 LSUI instructions, which allow the kernel to access user space memory without first disabling protection mode. PAN (arm.com) (Privileged Access Never).
- Support for the command set architecture extension has been improved on systems with ARM processors. MPAM (Memory System Resource Partitioning and Monitoring) has been enhanced to allow its use in user space for resource management through the mechanism resctrl. MPAM tags each memory access with a section identifier (PARTID, Partition ID) and a monitoring group identifier (PMG, Monitoring Group ID). In relation to PARTID, resource consumption, such as memory bandwidth or cache size, can be limited to prevent a group of tasks from monopolizing all resources. In the context of monitoring, the combination of PMG and PARTID can be used to track memory resource consumption under specific types of loads.
- Added the ability to use real-time mode (PREEMPT_RT) on 32-bit ARM processors. Previously, PREEMPT_RT support was provided for x86 and x86-64 architectures, ARM64, RISC-V, and LoongArch.
- In the system call clone3() new flags have been added: CLONE_NNP — prohibition of gaining new privileges in the created process; CLONE_AUTOREAP — automatic termination of the process instead of turning it into a zombie process until the parent process calls the wait() function; CLONE_PIDFD_AUTOKILL — termination of the child process if the associated pidfd descriptor is closed (for example, when the parent process terminates).
- For each kernel module, an import_ns file has been added to the /sys/module directory, containing a list of imported symbol namespaces (symbol namespace).
- The io_uring asynchronous I/O system has added support for using the BPF subsystem to create handlers. For example, it's possible to replace the main dispatch loop with a BPF program.
- In the BPF subsystem the analysis of stack usage has been modernized, significantly speeding up the verification of many BPF programs. To optimize performance,
- the hrtimer (high resolution timer) subsystem. The task scheduler can now use high-resolution timers without performance loss instead of less accurate timers. has been rewritten подсистема hrtimer (high resolution timer). Планировщик задач теперь может использовать таймеры с высоким разрешением без потери производительности вместо менее точных таймеров.
- Continued Changes have been merged from the Rust-for-Linux branch related to using Rust as a second language for developing drivers and kernel modules (Rust support is not enabled by default and does not make Rust a mandatory build dependency for the kernel). Requirements for the version of Rust needed to build kernel components have been raised as of version 1.85 (delivered in Debian 13). An experimental Kconfig option CONFIG_RUST_INLINE_HELPERS has been added for inlining C headers into Rust code at compile time (this optimization sped up the null block driver by 2%). The 'const_assert!' macro has been introduced. The capabilities of the sizes, clk, ptr, sync, error modules have been expanded.
- In the mechanism SCHED_EXT, which allows using BPF to create CPU schedulers, has added the initial capability to create nested schedulers (sub-schedulers), enabling each cgroup to have its own task scheduler.
- Optimization of the swap subsystem has continued. The old swap_map structure has been replaced with a mechanism "Swap Table". This change has improved performance and reduced memory consumption in the swap subsystem.
- In the subsystem DAMON (Data Access MONitor), which allows tracking process data access in memory (for instance, it can determine which memory areas a process has accessed and which areas remain unused), has added support for various automatic tuning quota.
- In the tracing subsystem within the concept of external ring buffers, allowing tracing data to be received from virtual machines. This capability is utilized in KVM hypervisors and nVHE to transmit tracing data from the guest system to the host side.
- In the subsystem RV (kernel.org) (Runtime Verification), intended for verifying the correctness of highly reliable systems, monitoring components "stall" has been added to track tasks that are temporarily suspended or blocked, and "deadline" for analyzing scheduler behavior.
Virtualization and Security
- By default, the PROC_MEM_FORCE_PTRACE flag is set, allowing bypassing of process memory access rights via the file /proc/PID/mem only for processes that use the ptrace() syscall for debugging.
- Added a new set of hooks for LSM modules (Linux Security Module), simplifying the implementation of policies for stackable file systems such as overlayfs. In LSM as well implemented a hook for managing access to Unix sockets, which engaged in the Landlock LSM module for assigning access policies to Unix sockets.
- In the built-in cryptographic library lib/crypto, providing simpler and faster functions than the traditional crypto API, has added support for the AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH, and SM3 algorithms. Added documentation via lib/crypto.
- Implemented the pKVM (Protected KVM) mode for strict isolation of anonymous memory using virtualization extensions for the AArch64 architecture. In this mode, guest memory pages are excluded from the host system's virtual address tables.
- The KVM hypervisor has added support for the fifth version of the ARM virtual interrupt controller (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
Network subsystem
- For Unix sockets created by the socket() function, within support for extended file attributes (xattr) user.*. Noted use cases include tagging via extended attributes to Unix sockets used for IPC Varlink, aiming to distinguish them for inspection and debugging of IPC operations using BPF programs. In systemd-journald, extended attributes are intended to be used to define the log format in connection with the socket /dev/log.
- Removed support for the UDP-Lite protocol (RFC 3828), allowing the delivery of packets with incorrect checksums, expecting that, for instance, partially corrupted audio and video data may be recovered at the codec level. The protocol has been removed as it was not used by anyone.
- Removed the ability to build the IPv6 stack as a kernel module, which was not practically used (IPv6 is either built into the kernel or completely disabled), but complicated maintenance as many subsystems had to add unnecessary handlers in case the IPv6 module was unloaded (CONFIG_IPV6=m).
Hardware
- In the AMDGPU driver, included a new display engine (DC) for AMD APU series HD 7000 (Sea Islands, GCN 1.1).
- In the Nouveau driver has added initial support for the NVIDIA GA100 GPU based on the Ampere microarchitecture.
- Continued work on the drm driver (Direct Rendering Manager) Xe for GPUs based on the Intel Xe architecture, used in Intel Arc graphics cards and integrated graphics, starting from Tiger Lake processors. Support for the graphical subsystem of Intel Nova Lake-P processors has been added. Purgeable Buffer Objects have been implemented.
- Continued integration of the Nova driver components for NVIDIA GPUs equipped with GSP firmware, used since the NVIDIA GeForce RTX 2000 series based on the Turing microarchitecture. The driver is written in Rust. Initial support for Turing microarchitecture-based GPUs has been added.
- Added DRM driver corebootdrm for graphics output through framebuffer firmware based on CoreBoot.
- Added support for AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP, and WM8962 audio codecs. Improved support for USB audio devices: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Added yogafan driver for tracking fan speed on Lenovo Yoga, Legion, and IdeaPad laptops.
- Added support for ARM platforms, SoCs, and devices: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 and ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Removed support for AHCI SATA and PCIe controllers used in the Baikal-T1 SoC, as well as drivers for timer, memory, physmap, bus, hwmon, dwc, and bt1-rom. The reason for removal is a lack of maintenance and incomplete integration into the Baikal platform kernel components, the production of which was halted in Russia in November 2025.
- The following packages have been removed: 12 drivers for Ethernet devices with ISA and PCMCIA interfaces produced before 2002, for which no users were found applying them in production systems. The following subsystem has also been removed from the kernel: ISDN, implementations of protocols AX.25, CAIF and Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivers for yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport and logibm (busmouse). The reason for removal was a lack of active maintainers against the backdrop of an increasing number of bugs identified with syzbot and AI tools, which no one is willing to fix, resulting in the burden of addressing critical issues falling on maintainers of the core network subsystems. A total of over 140,000 lines of code have been removed.
Source: linux.org.ru
