[LWN subscriber-only content]
Nobody covers the Linux kernel like LWN...but we need your support to be able to continue to do so. LWN subscribers get a number of benefits, including access to the LWN Kernel Source Database, and they provide the crucial support that keeps this unique coverage alive.
GIve LWN a try: get a one-month free trial subscription, no obligations, no tricks, no credit card required.
[+] Proceed to the article
By the time Linus Torvalds released 7.3-rc1 and closed the merge window for this release, 15,267 non-merge changesets had been pulled into the mainline repository. That is the second-highest commit count for an -rc1 release in the kernel's history; only the 6.7-rc1 release, which included nearly 3,000 commits of bcachefs history, had more. About 13,000 of those commits entered the mainline after the first 7.3 merge-window summary was written so, needless to say, there are a lot of changes to cover.The most interesting changes made in the latter part of the 7.3 merge window include:
Architecture-specific
- The s390 architecture has a new cpuidle subsystem based on the kernel's generic cpuidle infrastructure. Also new for s390 is kernel control-flow-integrity support using the Clang compiler's software-integrity features.
BPF
- BPF kfuncs can now be marked with the KF_SPINLOCK_SAFE flag, indicating that they can safely be called with a spinlock held.
- It is easier to pass arena pointers into BPF kfuncs; a kfunc parameter that is declared with a magic suffix (__arena) to its name will automatically be offset into the arena's space and cast to the appropriate type. There is also an __arena__nullable variant for pointers that might be passed as NULL. See this commit for more information. This feature also works for struct_ops arguments.
- BPF programs can now have access to global per-CPU data; see this merge message for more information.
- The BPF verifier now provides more information on verification errors, making it easier to debug the source of the problem. See this merge message (scroll past the version information at the top) for more information.
Core kernel
- The remaining pieces of the sub-scheduler
feature for sched_ext have been merged; the feature has been
declared complete and working. From the
merge message: "
a root BPF scheduler can now hand a cgroup subtree over to a nested sub-scheduler together with revocable CPU grants, and the sub-scheduler owns all scheduling decisions for its tasks on those CPUs.
" - Dynamic probes (kprobes, uprobes, and fprobes) are able to perform some simple type casting using the kernel's BTF data; in 7.3, that capability has been extended significantly. Support for boot-time probes has also been improved. See this merge message for an overview.
- The kernel has gained better working-set tracking for virtual machines; see this article for an overview of this work, which is arguably the largest chunk of LLM-assisted core code merged to date.
- The DAMON subsystem now supports data-attributes-only monitoring, for users who are more interested in the types of memory being accessed than the specifics of which memory is being accessed. See this changelog for an overview.
- The kexec handover mechanism has gained improved handling of huge pages allocated at boot time; those pages are now marked and preserved over a live update to a new kernel.
Filesystems and block I/O
- The ntfs3 filesystem has gained basic support for alternative data streams, which are accessed with a colon in the file name. So, for example, "cat file:query_streams" will list the streams associated with a file. See this changelog for some more information.
- The competing ntfs filesystem now has read-only support for Windows overlay filter (WOF) compression.
- The NFS server has gained CB_NOTIFY support for directory delegations. In short, this means that the server can report specific changes within a directory to the other side, allowing caches to be retained in many cases.
- Support for version 1 of the Btrfs free-space cache has been deprecated since the 6.11 release; in 7.3, it is being removed altogether. Older filesystems will still work, though perhaps a bit more slowly. The btrfstune tool can be used to convert a filesystem to use the newer (version 2) free-space cache. See this commit for some more information.
- The long-deprecated (since 5.9) usebackuproot Btrfs mount option has been removed; rescue=usebackuproot should be used instead.
- Buffered I/O to block devices can now use the RWF_DONTCACHE flag to avoid keeping data in the page cache.
- The ksmbd in-kernel SMB filesystem server has gained a number of new features, including Apple Time Machine support, per-share SMB3 encryption support, SMB Direct RDMA encryption, and more; see this merge message for the full list.
- The Filesystem in Userspace (FUSE) subsystem now has better support for buffer pools and zero-copy I/O when used with io_uring. See this documentation commit for some more information.
- The F2FS filesystem has gained the ability to dynamically remove partitions from a filesystem's pool, and to put them back at a later time. This commit contains some documentation on this feature.
Hardware support
- Clock: R-Car X5H clocks, Amlogic A9 SoC clock controllers, Rockchip RV1106 clock controllers, Qualcomm Glymur EVA and camera clock controllers, Hawi video clock controllers, Qualcomm Shikra global and audio core clock controllers, Qualcomm Nord display and graphics clock controllers, Maili video clock controllers, ESWIN EIC7700 HSP clock controllers, UltraRISC DP1000 clock controllers, Cixtech Sky1 audio subsystem clock controllers, and MediaTek MT8173 mfgtop clock controllers.
- GPIO and pin control: Realtek DHC RTD1625 GPIO controllers, MediaTek MT6858 pin controllers, Airoha en7523 and an7563 SoC pin controllers, and Qualcomm Maili pin controllers.
- Graphics: Anbernic TD4310 LCD panels, Chipone ICNA35XX panels, Ilitek ILI9488-based panels, Ilitek ILI7807S-based panels, Renesas R63419 dual-DSI video mode panels, and Novatek NT36536 panels.
- Hardware monitoring: Silergy SQ24860 regulators, ROHM BD12780 and BD12790 hot-swap controllers, PolarFire SoC (MPFS) temperature and voltage sensors, ESWIN EIC7700 voltage and temperature sensors, MPS MPQ82D00 step-down controllers, Kandou KB9002 PCIe retimers, Analog Devices MAX16545, MAX16550, and Volterra VT7505 PMBus controllers, MPS MPQ8646 buck converters, Altera SoC FPGA temperature and voltage sensors, and Qualcomm SPMI PMIC MBG temperature monitors.
- Industrial I/O: Analog Devices ADF41513 PLL frequency synthesizers, QST QMC5883L and QMC6308 3-axis magnetic sensors, NXP MCF54415 digital-to-analog converters, MediaTek MT6323 PMIC auxiliary analog-to-digital converters, AMD Versal system monitors, Texas Instruments ADS112C14/ADS122C14 analog-to-digital converters, InvenSense ICM-42607 motion trackers, Analog Devices LTC2378 analog-to-digital converters, Sensirion SLF3S liquid flow sensors, and Microchip MCP47A1 digital-to-analog converters.
- Input: Imagis ISA1200 haptic feedback units, MSI Claw game pads, HyperX microphone mute buttons, and AMD SFH tablet-mode switches.
- Media: Sony IMX471 and IMX678 sensors.
- Miscellaneous: R-Car X5H power-domain controllers, Spreadtrum SC2730 power regulators, Nuvoton MA35D1 QSPI controllers, Lenovo SE30 Gen 2 and SE60 watchdog timers, Nuvoton MA35D1 watchdog timers, LeapIO RAID adapters, TI BQ25630 battery chargers, SG Micro SGM41542 chargers, AMD AXI I3C master controllers, Axiado mailboxes, AMD Halo Box RGB LED controllers, SpacemiT K3 USB3/PCIe PHYs, Qualcomm QMP PCIe PHYs, Airoha SMC eFuses, Intel silicon security engine interfaces, Qualcomm MAILI interconnects, AMD MicroBlaze/V BRAM-based remote processors, ESWIN EIC7700 HSP reset controllers, Cix Sky1 audio subsystem reset controllers, Analog Devices LTC3220 18-channel LED controllers, and Silergy SY7758 backlight controllers.
- Networking: Analog Devices ADIN1140 10BASE-T1S PHYs and MAC-PHYs, Morse Micro mm81x WiFi interfaces, NXP IW61x WiFi chipsets, Realtek 8922DE/8922DE-VS PCI WiFi adapters, DAPU Telecom DAP8211R(I) gigabit Ethernet PHYs, Intel E2100 control-plane functions, and MediaTek MT7628 Embedded Ethernet switches.
- Sound: AWINIC AW88399 codecs, Qualcomm WSA885X codecs, and Realtek RT766 SDCA codecs.
Miscellaneous
- Changes to the user-space perf tool include a new function view for perf c2c; see this merge message for the full list of changes.
Networking
- It is now possible to use big TCP packets in UDP tunnels managed with VXLAN and GENEVE.
Security-related
- There is a new sysctl knob, crypto/af_alg_restrict, that regulates access to the AF_ALG cryptographic API from user space. The default is to partly restrict access to this feature (which may well be removed entirely in the future). See this changelog for an overview of the new knob, and this article for some context.
- The verification of signed BPF programs has been tightened by having the kernel verify the integrity of a program's metadata prior to loading it. See this merge message and this documentation commit for more information, and this article for some context.
- The landlock_restrict_self() system call now accepts a new flag, LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, that sets the "no new privileges" flag for the calling process, but only after the setup of the new rule set passed to the call succeeds. This commit contains some documentation for this feature.
- The AppArmor security module now supports loading of compressed policies.
Internal kernel changes
- Rust-support additions include I/O types and projection, the fwctl API, and sleepable read-copy-update (SRCU).
- The new rv wakeup monitor can report situations where a low-priority task is waking a realtime task — often an indication of priority inversion.
- An expedited read-copy-update (RCU) grace period will now cause ordinary callbacks to be called along with the expedited ones.
- There is a new ioctl() command for the memory-allocation profiling feature. It allows the kernel to filter out unwanted information before passing the allocation data to user space, significantly improving performance. See this changelog for the (limited) documentation that exists.
- The low-level internals of the swap subsystem have been reworked around a new swap_ops structure, cleaning up the code and facilitating future improvements.
- With regard to exported symbols, 153 were removed, but an impressive 523 were added. There were also three kfuncs removed and 32 added. See this page for a full list of the changes to exported symbols and kfuncs.
The changes in 7.3-rc1 were contributed by 2,450 developers, of whom 520 were first-time contributors. There are Assisted-by tags in 1,264 of those commits — that is just over 8% of the total, but is also surely a significant undercount of LLM-assisted commits in the kernel.
Now comes the stabilization period, when bugs are found and fixed before
the 7.3 release, which is most likely to happen on October 18.
The 7.2 release saw over 3,000 commits applied after 7.2-rc1; if, as
seems probable, that pattern repeats itself in the coming weeks,
7.3 will end up with the most commits of any kernel release — so far.
| Index entries for this article | |
|---|---|
| Kernel | Releases/7.3 |
Did you like this article?? Claim your free trial subscription now to get a lot more like it.