Linux Kernel 7.1 Release

After two months of development, Linus Torvalds has released the Linux kernel 7.1. Among the most notable changes are: the new ntfsplus driver, the first phase of ending support for the i486 CPU, the removal of old Ethernet adapters, the elimination of ISDN and AX.25 protocols, the inclusion of the Intel FRED mechanism by default, support for BPF handlers in io_uring, optimization of the swap subsystem, support for sub-schedulers in sched_ext, zero-copy I/O in the ublk driver, the ioctl operation "shutdown" in Btrfs, and dynamic performance mode switching in the amd-pstate driver, as well as support for xattr for Unix sockets.

The new version includes 17,275 fixes from 2,589 developers,
the patch size is 57 MB (the changes affected 13,528 files, with 751,785 lines of code added and 405,916 lines removed). In the previous release, there were 15,624 fixes from 2,477 developers, and the patch size was 56 MB. About 41% of all changes in 7.1 are related to device drivers, approximately 12% pertain to updates specific to hardware architectures, 14% are related to the network stack, 5% to file systems, and 3% to internal kernel subsystems.

Key innovations in kernel 7.1 (1, 2, 3):

  • Disk subsystem, input/output, and file systems
    • A new implementation of the NTFS file system called ntfsplus has been accepted, based on the code of the former ntfs driver that was removed from the kernel. The old driver has been redesigned, expanded with the capability for data writing, and adapted to support modern features, such as using page folios instead of the buffer_head structure. The new driver implements delayed block allocation, achieving high performance in write operations and reducing fragmentation. The iomap library is utilized for buffered I/O operations, direct I/O, extent mapping, and page read/write operations. 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 at the same level. The ntfs3 driver remains in the kernel and has received fixes and minor improvements.
    • Support for generating and verifying T10 integrity check data at the file system level, rather than the block device level, has been added, resulting in improved read operation performance.
    • The ublk block device driver, which allows specific logic to be offloaded to the user-space process, has been enhanced with support for zero-copy I/O via shared memory, eliminating data copying between buffers.
    • For self-encrypting block devices SED-OPAL, ioctl commands have been added to manage the Single User mode, and the STACK_RESET command has been implemented.
    • In Btrfs, the ioctl operation 'shutdown' has been declared stable, allowing the file system to enter a state where attempts are made to complete ongoing operations while blocking all new operations.
    • In exfat, the ability to reserve empty spaces has been implemented through a call to fallocate().
    • Support for creating temporary files with the O_TMPFILE flag has been added to the CIFS file system.
    • An option FSMOUNT_NAMESPACE has been added to the fsmount() system call, creating a new namespace for the mounted file system's mount points. Flags have been added to the clone3() and unshare() system calls to return a new mount namespace containing only a mounted empty file system stub based on nullfs, along with the fs-dax driver with a file system interface to DAX (Direct Access) devices.
    • Protection against file descriptor brute-force attacks has been added to the NFS server, implemented through the signing of descriptors with a cryptographic signature. This protection can be enabled with the mount option sign_fh.
    • A character driver for fs-dax has been added, providing an interface for interaction with DAX (Direct Access) devices that support non-page cache operations. This interface is necessary for integration into the famfs file system kernel, hosted in RAM.
    • In the Ceph file system, metric collection for I/O has been implemented in relation to subdivisions.
  • Memory and system services
    • The first series of changes to discontinue support for i486 processors has been accepted. 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. The code for actual support of operation on i486 processors has been retained in the kernel, but building for such systems now requires applying patches to the build files. The reasons for removing i486 support are driven by the desire to simplify the kernel by eliminating complex code that emulates certain hardware operations, such as CX8 (compare and exchange 8 bytes) and TSC (CPU cycle counter used in the task scheduler).
    • In the amd-pstate driver, used for managing power consumption on systems with AMD processors, dynamic switching of performance settings and power management behavior has been implemented depending on whether the system is running on AC power or battery. When connected to AC power, the 'performance' mode is now activated, while 'balance_performance' mode is enabled when operating on battery.
    • The Intel FRED (Flexible Return and Event Delivery) mechanism has been enabled by default, which increases the efficiency and reliability of delivering information about low-level events. Performance improvements and reduced latency are achieved by returning events using the IRET processor instruction instead of passing events through the IDT (Interrupt Descriptor Table). Reliability is enhanced by separately handling event arrival in the kernel and user contexts, protecting against nested NMI execution, and saving all CPU registers related to exceptions in an extended stack frame.
    • Support for memory performance monitoring blocks (PMU - Performance Monitoring Unit), used in the NVIDIA Tegra410 SoC, has been added to the perf subsystem.
    • Execution of futex operations on ARM systems has been accelerated by leveraging Arm 9.6 LSUI instructions, allowing the kernel to access user space memory without first disabling the PAN (Privileged Access Never) protection mode.
    • On ARM processor systems, enhanced support for the MPAM (Memory System Resource Partitioning and Monitoring) architecture extension has been added, allowing its use in user space for resource management through the resctrl mechanism. MPAM tags each memory access with a section identifier (PARTID, Partition ID) and a monitoring group identifier (PMG, Monitoring Group ID). Resource consumption, such as memory bandwidth or cache size, can be limited based on PARTID so that a group of tasks does not monopolize 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 load.
    • The ability to use the real-time mode (PREEMPT_RT) has been added for 32-bit ARM processors. Previously, PREEMPT_RT support was provided for x86 and x86-64 architectures, ARM64, RISC-V, and LoongArch.
    • New flags have been added to the clone3() system call: CLONE_NNP — prohibits gaining new privileges in the created process; CLONE_AUTOREAP — automatically terminates the process instead of turning it into a zombie process until the wait() function is called by the parent process;
      CLONE_PIDFD_AUTOKILL — terminates the child process if the associated pidfd descriptor is closed (for example, when the parent process is terminated).
    • For each kernel module, a file named import_ns has been added in the /sys/module directory, containing a list of imported symbol namespaces.
    • Support for using the BPF subsystem for creating handlers has been added to the io_uring asynchronous input/output system. For instance, the main dispatch loop can be replaced with a BPF program.
    • The analysis of stack usage in the BPF subsystem has been modernized, significantly speeding up the verifier's checks for many BPF programs.
    • To optimize performance, the hrtimer (high-resolution timer) subsystem has been rewritten. The task scheduler can now utilize high-resolution timers without sacrificing performance compared to less precise timers.
    • The transfer of changes from the Rust-for-Linux branch related to the use of Rust as a secondary language for developing drivers and kernel modules continues (Rust support is not enabled by default and does not make Rust a mandatory build dependency for the kernel). Prior to version 1.85 (which is included in Debian 13), the requirements for the Rust version needed to build kernel components have increased. An experimental Kconfig option CONFIG_RUST_INLINE_HELPERS has been added to embed C wrappers in Rust code during compilation (the optimization improved the performance of the null block driver by 2%). The ‘const_assert!’ macro has been added. The capabilities of the ‘sizes’, ‘clk’, ‘ptr’, ‘sync’, and ‘error’ modules have been expanded.
    • The SCHED_EXT mechanism, which allows the use of BPF for creating CPU schedulers, has been enhanced with the initial ability to create nested schedulers (sub-schedulers), which can implement a separate task scheduler for each cgroup.
    • The optimization of the swap subsystem has been continued. The old swap_map structure has been removed and replaced with the 'Swap Table' mechanism. This change has improved performance and reduced memory consumption in the swap subsystem.
    • The DAMON (Data Access MONitor) subsystem, which allows for monitoring process access to data in RAM (for example, it can identify which memory areas a process accessed and which areas remained unused), has added support for various automatic tuning algorithms for quotas.
    • The tracing subsystem has implemented the concept of external ring buffers, allowing tracing data to be obtained from of virtual machines. This capability has been utilized in hypervisors KVM and nVHE to transfer tracing data from the guest system to the host side.
    • In the RV (Runtime Verification) subsystem, designed to verify the correctness of high-reliability systems, 'stall' monitoring components have been added to track tasks that are temporarily suspended or blocked, and 'deadline' components for analyzing task scheduler behavior.
  • Virtualization and Security
    • By default, the PROC_MEM_FORCE_PTRACE flag is set, allowing bypassing process memory access rights through the file /proc/PID/mem only for processes that apply the ptrace() system call for debugging.
    • A new set of hooks has been added for LSM modules (Linux Security Module), simplifying the implementation of policies for stackable file systems such as overlayfs. An access management hook for Unix sockets has also been added to LSM, which is utilized in the LSM module Landlock to assign access policies to Unix sockets.
    • The built-in crypto library lib/crypto, which provides simpler and faster functions than the traditional crypto API, now supports the algorithms AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH, and SM3. Documentation for lib/crypto has also been added.
    • A pKVM (Protected KVM) mode has been implemented 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 table.
    • Support for the fifth version of the ARM virtual interrupt controller (VGICv5 — ARM Virtual Generic Interrupt Controller v5) has been added to the KVM hypervisor.
  • Network subsystem
    • Support for extended file attributes (xattr) 'user.*' for Unix sockets created by the socket() function has been implemented. Among the applications, tagging via extended attributes for Unix sockets used for IPC Varlink is noted, to distinguish them from the general pool for inspection and debugging IPC operations using BPF programs. In systemd-journald, extended attributes are intended to be used to determine the log format in relation to the socket /dev/log.
    • Support for the UDP-Lite protocol (RFC 3828), which allows the delivery of packets with incorrect checksums in the expectation that, for example, partially corrupted audio and video data can be recovered at the codec level, has been removed. The protocol was removed because no one uses it.
    • The capability to build the IPv6 stack as a kernel module, which has not been practically used (IPv6 is either built into the kernel or completely disabled), has been removed. This complexity made maintenance difficult, as when building IPv6 as a kernel module (CONFIG_IPV6=m), many subsystems were forced to add unnecessary handlers in case the IPv6 module was unloaded.
  • Hardware
    • A new display engine (DC) for AMD APU series HD 7000 (Sea Islands, GCN 1.1) has been included in the AMDGPU driver.
    • Initial support for NVIDIA GA100 GPU based on the Ampere microarchitecture has been added to the Nouveau driver.
    • Work continues on the Direct Rendering Manager (DRM) driver Xe for GPUs based on Intel Xe architecture, used in Intel Arc graphics cards and integrated graphics starting with Tiger Lake processors. Support for the graphics subsystem of Intel Nova Lake-P processors has been added. Purgeable Buffer Objects have been implemented.
    • The integration of Nova driver components for NVIDIA GPUs equipped with GSP firmware has continued, starting from 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.
    • The corebootdrm DRM driver has been added for graphics output through framebuffers on CoreBoot-based firmware.
    • Support for audio ASoC devices has been added: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP, and WM8962. 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.
      PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
    • The yogafan driver has been added to monitor the fan speed on Lenovo Yoga, Legion, and IdeaPad laptops.
    • Support for ARM platforms, SoCs, and devices has been added: 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.
    • 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, has been removed. The reason for removal is lack of support and incomplete integration of Baikal platform components into the kernel, the production of which in Russia was halted in November 2025.
    • Twelve drivers for Ethernet devices with ISA and PCMCIA interfaces produced before 2002 have been removed, as no users were found who applied them in operational systems. Also, the following have been excluded from the kernel:
      ISDN subsystem, implementations of AX.25, CAIF, and Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivers yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport, and logibm (busmouse). The reason for removal was the lack of active maintainers against the backdrop of an increasing number of errors identified through syzbot and AI tools, which no one is willing to fix, placing all the burden of addressing critical issues on the maintainers of the core network subsystems. In total, more than 140,000 lines of code have been removed.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster