5.7 Merge window part 1
Architecture-specific
- A version of the controversial split-lock detection patch has finally been merged. See this changelog for details about how this mode works. At the moment, this work breaks some VMware-based virtual machines, but that will presumably be fixed long before 5.7 is released.
- The Arm architecture now supports hot-removal of memory.
- Pointer authentication is now supported for kernel code (along with user space, which has been supported for some time). This work includes return-address signing in the kernel.
Core kernel
- The io_uring subsystem now includes support for splice() and for automatic buffer selection.
- The thermal pressure patch set has been merged; it allows the scheduler to take a processor's thermal situation into account when placing tasks.
- The CPU scheduler's load tracking has finally gained frequency invariance — meaning that it has access to correct utilization values regardless of the CPU's current operating frequency — on the x86 architecture.
- After a fair amount of back-and-forth, BPF and the realtime preemption patches can now coexist nicely.
- The new BPF_MODIFY_RETURN BPF program type can be attached to a function in the kernel and modify its return value.
Filesystems and block I/O
- The Btrfs filesystem provides a new ioctl() command (BTRFS_IOC_SNAP_DESTROY_V2) that allows the deletion of a subvolume by its ID.
- As expected, the exFAT filesystem module has been deleted to make room for a better one that will be merged into the main kernel via a filesystem tree. This module was not deleted, though, before various developers had made a number of improvements to it that have now been discarded.
Hardware support
- Graphics: BOE TV101WUM and AUO KD101N80 45NA 1200x1920 panels, Feixin K101 IM2BA02 panels, Parade PS8640 MIPI DSI to eDP converters, TI Keystone display subsystems, Samsung AMS452EF01 panels, Ilitek ILI9486 display panels, Toshiba TC358768 MIPI DSI bridges, TI TPD12S015 HDMI level shifters, Novatek NT35510 RGB panels, and Elida KD35T133 panels.
- Industrial I/O: Sharp GP2AP002 proximity/ambient-light sensors, Dyna Image AL3010 ambient-light sensors, Analog Devices HMC425A GPIO gain amplifiers, Analog Devices AD5770R digital-to-analog converters, and InvenSense ICP-101xx pressure and temperature sensors.
- Media: Sony IMX219 sensors and Allwinner DE2 rotation units.
- Miscellaneous: Analog Devices fan controllers, Qualcomm Atheros AR934X/QCA95XX SPI controllers, MediaTek SPI NOR controllers, Monolithic MP5416 power-management ICs, Monolithic MP8869 regulators, Ingenic JZ SoC operating-system timers, IDT 82P33xxx PTP clocks, Xilinx ZynqMP AES crypto accelerators, and Allwinner sun6i/sun8i/sun9i/sun50i message boxes.
- Networking: Qualcomm IP accelerators, Synopsys DesignWare XPCS controllers, Marvell USB to MDIO adapters, and TI K3 AM654x/J721E CPSW Ethernet adapters.
- USB: Intel PMC multiplexers, Ingenic JZ4770 transceivers, Maxim MAX3420 USB-over-SPI controllers, Qualcomm 28nm high-speed PHYs, and Qualcomm USB super-speed PHYs [don't ask us whether "high-speed" is higher-speed than "super-speed" or not...]. The USB subsystem also has a new "raw gadget" interface that allows the emulation of USB devices from user space.
- Staging notes: the wireless USB subsystem and "ultra wideband" module have been deleted; they have not worked for some time and nobody is working on the code. The HP100 Ethernet driver is also gone from staging. Meanwhile, the Cavium octeon USB controller and wireless interface drivers, which were deleted in 5.6, have been reinstated for 5.7.
Networking
- The networking layer can now take advantage of hardware that offloads 802.11 encapsulation tasks.
- The new "Bareudp" module provides generic, level-3 UDP encapsulation that can be used by a number of other tunneling protocols. See the documentation in this commit for more information.
- Moving a device from one network namespace to another will now adjust the ownership and permissions of the relevant sysfs files accordingly.
- The work of merging the multipath TCP patches continues, but a fully functional MPTCP implementation in the mainline is still probably a few releases away.
Security-related
- The SELinux checkreqprot tunable, if set to 1, changes the way that memory protections are checked in security policies; that can have the effect of allowing memory to be made executable regardless of what the loaded policy says. This setting will be deprecated in 5.7, with the plan to disable it entirely in a future release; see this commit for more information.
- The KRSI security module has been merged — via the networking tree. This module allows the attachment of BPF programs to any security hook in the kernel; its form has changed somewhat since LWN looked at it and the "KRSI" name is no longer used, but the core idea remains the same. This commit contains some documentation for this feature.
- The kernel's Curve25519 elliptic-curve crypto implementation has been replaced with one that has been formally verified.
Internal kernel changes
- There is now a generic interrupt-injection mechanism that can be used for debugging and fault-testing purposes.
- The TRIM_UNUSED_KSYMS configuration option causes the removal from the kernel symbol table of all exported symbols that are not used by the kernel as it is actually configured and built. There are cases (Android in particular) where this removal is desired, but there is also a need to continue to export a number of symbols for externally supplied modules, even if they are not used by the Android kernel itself. The new UNUSED_KSYM_WHITELIST option allows the provision of a list of symbols that should be retained even if they are seemingly unused.
- It is now possible (via the MAGIC_SYSRQ_SERIAL_SEQUENCE configuration option) to specify a string of characters that is required to enable the magic SysRq functionality on a serial port. The purpose is to keep this functionality available while avoiding spurious commands on serial ports that can generate garbage data.
- The "unified user-space access-intended accelerator framework"
implements shared virtual addresses between the CPU and peripheral
devices; it is intended to allow accelerators to "
access any data structure of the main cpu
". It was merged via the crypto tree. See this commit for documentation. - The kunit unit-testing framework can now make test results available via debugfs.
The 5.7 merge window is just beginning; it can be expected to run through
April 12 if the usual schedule holds. As always, LWN will catch up
with the rest of the changes pulled for 5.7 once the merge window closes.
| Index entries for this article | |
|---|---|
| Kernel | Releases/5.7 |
