5.1 Merge window part 1
As of this writing, 6,135 non-merge changesets have been pulled into the
mainline repository for the 5.1 release. That is approximately halfway
through the expected merge-window volume, which is a good
time for a summary. A number of important new features have been merged
for this release; read on for the details.
Core kernel
- Support for the ancient a.out executable format has been deprecated, with an eye toward removing it entirely later this year if nobody objects.
- The BPF verifier has gained the ability to detect and remove dead code from BPF programs.
- The BPF spinlock patches have been merged, giving BPF programs increased control over concurrency.
- There is a new prctl() option for controlling speculative execution; PR_SPEC_DISABLE_NOEXEC disables enough speculation to block the speculative store bypass vulnerability, but only until the process calls exec().
- A whole new set of system calls using 64-bit time values has been added; they are part of the kernel's year-2038 preparation. See this commit for the full list.
- A new sysctl knob (kernel/sched_energy_aware) can be used to disable energy-aware scheduling. This feature is already disabled on most platforms, but by default it will be turned on for asymmetric systems where it makes sense. There are also two new documents on energy-aware scheduling and the energy model framework.
- There is a new F_SEAL_FUTURE_WRITE operation for memfd regions that allows the caller to continue to write to the region but prevents any others from doing so. This feature supports an Android use case; see this commit for some more information.
- The timer-events oriented CPU-frequency governor has been merged; it should yield better power-saving results on systems with tickless scheduling enabled.
Filesystems
- The Btrfs filesystem now supports the use of multiple ZSTD compression levels. See this commit for some information about the feature and the performance characteristics of the various levels.
Hardware support
- Audio: Cirrus Logic CS4341 and CS35L36 codecs, Rockchip RK3328 audio codecs, NXP pulse density modulation microphone interfaces, Mediatek MT8183 audio platforms, MediaTek MT6358 codecs, Qualcomm WCD9335 codecs, and Ingenic JZ4725B codecs.
- Industrial I/O: Sensirion SPS30 particulate matter sensors, Plantower PMS7003 particulate matter sensors, Texas Instruments ADS124S08 analog-to-digital converters, Analog Devices ad7768-1 analog-to-digital converters, Analog Devices AD5674R/AD5679R digital-to-analog converters, STMicroelectronics LPS22HH pressure sensors, Nuvoton NPCM analog-to-digital converters, Invensense ICM-20602 motion trackers, Maxim MAX44009 ambient light sensors, and Texas Instruments DAC7612 digital-to-analog converters.
- Miscellaneous: STMicroelectronics FMC2 NAND controllers, Amlogic Meson NAND flash controllers, ROHM BD70528 power regulators, Maxim MAX77650/77651 power regulators, Loongson-1 interrupt controllers, Broadcom STB reset controllers, OP-TEE-based random number generators, Habana AI accelerators, Mediatek GNSS receivers, and NVIDIA Tegra combined UARTs.
- Networking: NXP ENETC gigabit Ethernet controller physical and virtual devices, and MediaTek MT7603E (PCIe) and MT76x8 wireless interfaces.
- SPI: Freescale quad SPI controllers, NXP Flex SPI controllers, and SiFive SPI controllers.
- USB: Marvell A3700 comphy and UTMI PHYs and Cadence D-PHYs.
Networking
- There is a new socket option called "SO_BINDTOIFINDEX":
"
It behaves similar to SO_BINDTODEVICE, but takes a network interface index as argument, rather than the network interface name.
". See this changelog for more information. - As part of the "make WiFi fast" effort, the mac80211 layer has gained an awareness of airtime fairness and the ability to share the available airtime across stations.
- The year-2038-safe socket timestamp options described in this article have been merged.
- The new "devlink health" mechanism provides notifications when an interface device has problems. See this merge commit and this documentation patch for details.
- The mac80211 layer now has support for multiple BSSIDs (MAC addresses, essentially) for wireless devices.
Internal kernel changes
- The ancient get_ds() function, which originally retrieved the value of the %ds segment on x86 systems, has been removed; all in-tree callers (of which there are few) have been changed to simply use the KERNEL_DS constant instead.
- Much of the API for dealing with atomic variables is now automatically generated from a set of descriptions; the intent is to provide better consistency across architectures and to make it easier to add instrumentation. This commit gives an overview of how it all works.
- The definitions of the GFP_* memory-allocation flags have been changed to allow the most frequently used bits to be represented more compactly. According to this commit, that reduces the size of Arm kernels by about 0.1%.
- Memory compaction has been reworked, resulting in significant improvements in success rates and CPU time required.
- The new "on-chip interconnect API" provides a generic mechanism for the control of connections within complex peripheral devices; see Documentation/interconnect/interconnect.rst for details.
The 5.1 merge window will probably stay open through March 17, with the
final 5.1 release due at the beginning of May. As always, we'll catch up
with the rest of the merge-window activity once it has closed; stay tuned.
| Index entries for this article | |
|---|---|
| Kernel | Releases/5.1 |