|
|
Subscribe / Log in / New account

5.12 Merge window, part 1

By Jonathan Corbet
February 22, 2021
The beginning of the 5.12 merge window was delayed as the result of severe weather in the US Pacific Northwest. Once Linus Torvalds got going, though, he wasted little time; as of this writing, just over 8,600 non-merge changesets have been pulled into the mainline repository for the 5.12 release — over a period of about two days. As one might imagine, that work contains a long list of significant changes.

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
KernelReleases/5.12


to post comments

C6x

Posted Feb 23, 2021 9:02 UTC (Tue) by hrw (subscriber, #44826) [Link]

C6x is separate architecture not an arm platform.

5.12 Merge window, part 1

Posted Feb 23, 2021 13:45 UTC (Tue) by rvolgers (guest, #63218) [Link]

Cool to see fs-verity developing in this direction, it's what I was hoping for. The concept of "an untrusted file store which allows efficiently verifiable random access to file contents" seems super useful for e.g. container workloads. You can optimize things a lot if you can lazily fetch and cache data, and having a merkle tree lets you do that while still being able to locally ensure the data is consistent and traceable to an approved workload.

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).

5.12 Merge window, part 1

Posted Feb 23, 2021 19:47 UTC (Tue) by flussence (guest, #85566) [Link] (1 responses)

Watching Linux gradually gain support for N64 hardware in 2021 is a little bit surreal, but cool. Having something that's not a total black box running on it should help uplift emulators a fair amount too - you'd think popular 25 year old hardware would be well understood and preserved by now, but the ecosystem for it is in worse shape than a lot of its contemporaries.

5.12 Merge window, part 1

Posted Feb 23, 2021 20:55 UTC (Tue) by mss (subscriber, #138799) [Link]

Wasn't the N64 lockout chip (CIC) only reverse engineered in 2015?

5.12 Merge window, part 1

Posted Mar 9, 2021 3:57 UTC (Tue) by bergwolf (guest, #55931) [Link]

> The io_uring subsystem is now integrated with memory control groups so that its memory use is properly accounted for and regulated.

What about CPU? Does the CPU control groups properly account io_uring costs?


Copyright © 2021, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds