5.12 Merge window, part 1
The most interesting changes merged for 5.12 so far include:
Architecture-specific
- A number of 32-bit Arm platforms (efm32, picoxcell, prima2, tango, u300, zx, and c6x) have been removed after they turned out to have no users. A long list of associated device drivers has been removed as well.
Core kernel
- The BPF instruction set has gained a set of atomic operations; see this documentation commit and this merge message for more information.
- BPF programs can now be attached to "bare" tracepoints — those which have no associated trace event visible from user space. Bare tracepoints exist out of the fear that a visible event could eventually become part of the kernel ABI and thus difficult to change. The BPF patch includes a warning that bare tracepoints have no ABI guarantees, but what will actually happen if a bare-tracepoint change breaks user-space code is not entirely clear.
- BPF programs can now access data on the stack via pointers with variable offsets; this removes an annoying limitation that developers have had to work around until now. Consider an array on the stack, for example; previously it was only possible to access that array with a constant index, while now a variable index may be used. The verifier has been extended to ensure that such accesses remain within bounds. This relaxation only applies to privileged programs, though, due to fears of speculative-execution exploits.
- Support for the "oprofile" profiling subsystem has been removed. Oprofile has not been actively used for some time, having long been supplanted by perf events.
- The io_uring subsystem is now integrated with memory control groups so that its memory use is properly accounted for and regulated.
- It is now possible to choose between the various scheduler preemption modes (none, voluntary, or full) at boot time if the PREEMPT_DYNAMIC configuration option is selected. There is a knob under debugfs that can be used to switch at run time as well.
Filesystems and block I/O
- The LOOKUP_CACHED patches have been merged. These allow user space (along with io_uring) to request that a pathname lookup be done without blocking or not at all.
- The Btrfs filesystem has gained support for zoned block devices — sort of. Zoned-device support is clearly a work in progress and is not ready for real use yet.
- F2FS now allows the specification of the compression algorithm and level to use; the LZ4 "high compression" mode is now supported.
- The new FS_IOC_READ_VERITY_METADATA ioctl() command can be used to read the metadata from files protected by fs-verity. See this commit for details.
Hardware support
- Clock: Allwinner H616 clock control units, Qualcomm SDX66 APCS clock controllers, Qualcomm SC8180X, SC7280, and SM8350 global clock controllers, and Qualcomm SDM660 multimedia clock controllers.
- Media: OmniVision OV5648 and OV8865 image sensors, MaxLinear MXL692 tuners, IMI RDACM21 GMSL cameras, and Sony IMX334 sensors.
- Miscellaneous: Broadcom power-management buses, Yamaha YAS530 3-axis magnetometers, Analog Devices AD5766/AD5767 digital-to-analog converters, Nintendo 64 audio controllers, Ingenic JZ4760 codecs, Khadas TS050 TFT-LCD panels, Google cr50 I2C TPM interfaces, Intel Keem Bay OCS hashing-control units, Marvell OcteonTX2 cryptographic accelerators, Microsoft Surface system aggregator modules, Aosong AHT10 temperature and humidity sensors, Texas Instruments TPS23861 802.3at PoE PSE controllers, Intel Keem Bay SoC non-secure watchdog timers, NVIDIA Tegra QSPI controllers, Acer Iconia Tab A500 embedded controllers, Qualcomm ADC5 SPMI PMIC thermal monitors, Silvaco dual-role master I3C controllers, and Toshiba Visconti GPIO controllers.
- Networking: Arrow SpeedChips XRS7003/7004 gigabit Ethernet switches, Broadcom BCM4908 internal MACs, MediaTek MT7921E wireless interfaces, and Toshiba Visconti MACs.
- Power supply: TI BQ256XX battery chargers, Analog Devices LTC4162-L chargers, and Acer Iconia Tab A500 batteries.
- Regulator: Richtek RT4831 DSV regulators, Actions Semi ATC260x PMIC regulators, MediaTek DVFSRC regulators, and MediaTek MT6315 PMIC regulators.
- USB: Cadence dual-role USB controllers and USB MaxLinear/Exar USB to serial converters.
- The kernel now supports dynamic thermal power management via a subsystem that allows the power usage of groups of devices to be capped to meet thermal constraints. See this documentation commit for more information.
Networking
- The rapidly developing multipath TCP implementation has gained the ability to attach a priority to specific subflows; some can, for example, be marked as only being for backup use should the primary flow(s) fail.
- The IGMPv3 subsystem has gained "explicit host tracking" support; see this merge message for a few details.
- The threaded NAPI polling patches have been merged; this work can improve performance for some workloads. There is a new sysfs knob that can be used to control threaded polling; see this commit for details.
- The netfilter packet-filtering mechanism now supports the idea of "ownership" of specific tables. This allows, for example, a firewall daemon to maintain exclusive control of the tables it manages.
Security-related
- The integrity measurement architecture (IMA) subsystem can now "measure" various bits of data within the kernel itself to ensure that they have not been tampered with. It can, for example, check the current SELinux policy for changes.
Virtualization and containers
- The KVM subsystem has gained the ability to intercept Xen hypercalls and pass them to user space for emulation.
If the normal schedule stays in place, the 5.12 merge window can be
expected to close on February 28. It is not clear, at this point,
whether the loss of nearly one week of testing time will lead to an
extension of the merge window or not. Regardless, stay tuned for our
summary of the remainder of the merge window, to be posted after the window
closes, whenever that may be.
Index entries for this article | |
---|---|
Kernel | Releases/5.12 |
Posted Feb 23, 2021 9:02 UTC (Tue)
by hrw (subscriber, #44826)
[Link]
Posted Feb 23, 2021 13:45 UTC (Tue)
by rvolgers (guest, #63218)
[Link]
I haven't quite gotten there yet, but I have some Rust code for generating the merkle tree hash, which is useful for creating signatures on workloads on a server which does not have native fs-verity, or produces incompatible fs-verity hashes (e.g. because of different page size): https://crates.io/crates/fs-verity (apologies for the advertising).
Posted Feb 23, 2021 19:47 UTC (Tue)
by flussence (guest, #85566)
[Link] (1 responses)
Posted Feb 23, 2021 20:55 UTC (Tue)
by mss (subscriber, #138799)
[Link]
Posted Mar 9, 2021 3:57 UTC (Tue)
by bergwolf (guest, #55931)
[Link]
What about CPU? Does the CPU control groups properly account io_uring costs?
C6x
5.12 Merge window, part 1
5.12 Merge window, part 1
5.12 Merge window, part 1
5.12 Merge window, part 1