|
|
Subscribe / Log in / New account

6.0 Merge window, part 1

By Jonathan Corbet
August 5, 2022
The merge window for the kernel that will probably be called "6.0" has gotten off to a strong start, with 6,820 non-merge changesets pulled into the mainline repository in the first few days. The work pulled so far makes changes all over the kernel tree; read on for a summary of what has happened in the first half of this merge window.

The most significant changes accepted as of this writing include:

Architecture-specific

  • The arm64 architecture can now swap transparent huge pages without the need to split them to base pages first. This feature is incompatible with the memory tagging extension, though.

Core kernel

  • The energy-margin heuristic that limited process migration across CPUs has been removed, resulting in better energy utilization overall.
  • A number of other tweaks have been made to task placement on larger systems, resulting in better performance overall, but the pull description warns that behavioral changes might be seen in some workloads.
  • Support for epoll_ctl() operations in io_uring has been deprecated and will be removed from a future release if there are no complaints.
  • The new IORING_RECV_MULTISHOT flag enables multi-shot operation with recv() calls, significantly improving performance in applications that do a lot of receives from the same socket(s).
  • Support for buffered writes (to XFS filesystems only for now) in io_uring has been considerably improved, increasing performance by a factor of two or so.
  • Zero-copy network transmission is also now supported in io_uring.
  • BPF programs attached to uprobes are now allowed to be sleepable.
  • There is a new BPF iterator for working through kernel symbols; no documentation is included, but there is a self-test with an example of how it works.

Filesystems and block I/O

  • There are two seemingly unused distributed lock-manager features (DLM_LSFL_TIMEWARN and DLM_LKF_TIMEOUT) that have been marked as deprecated. The current plan is to remove them entirely in the 6.2 development cycle.
  • The fsnotify subsystem has a new flag, FAN_MARK_IGNORE, which provides more control over which specific events are ignored; this commit changelog has a little more information.
  • The kernel can now properly implement POSIX access control lists on overlayfs filesystems that are, in turn, layered on top of ID-mapped lower-level filesystems. The curious can find a lot of details on the problem being solved in this pull request.
  • There is a new user-space block driver that is driven by io_uring. It is thoroughly undocumented, but some information can be found in this commit changelog and the ubdsrv GitHub page.
  • A new version (version 2) of the Btrfs "send" protocol has been added. It supports sending data in larger chunks, sending raw compressed extents, and including more metadata. Naturally, the version 1 protocol is still supported on both ends.

Hardware support

  • Graphics: LogiCVC display controllers, Freescale i.MX8QM/QXP pixel combiners, Freescale i.MX8QM/QXP display pixel links, Freescale i.MX8QXP pixel link to display pixel interfaces, Freescale i.MX8QM and i.MX8QXP LVDS display bridges, Freescale i.MX LCDIFv3 LCD controllers, and EBBG FT8719 panels. Of course, the kernel has also gained several hundred-thousand more lines of amdgpu register headers.
  • Hardware monitoring: Analog Devices ADM1021, ADM1021A, ADM1023, ADM1020, ADT7481, ADT7482, and ADT7483 temperature sensors, Maxim MAX1617 and MAX6642 temperature sensors, National Semiconductor LM84 temperature sensors, ON Semiconductor NCT210, NCT214, NCT218, and NCT72 digital thermometers, Philips NE1618 temperature sensors, Analog Devices LT7182S step-down switchers, and Aquacomputer Quadro fan controllers.
  • Media: Allwinner A31 MIPI CSI-2 controllers, Allwinner A83T MIPI CSI-2 controllers, and ON Semiconductor AR0521 sensors.
  • Miscellaneous: Hisilicon HNS3 performance monitoring units, NVIDIA Tegra186 timers, Renesas RZ/G2L interrupt controllers, Loongson PCH LPC controllers, Loongson3 Extend I/O interrupt vector controllers, Arm SCMI system power controllers, MediaTek Smart Voltage Scaling engines, Qualcomm interconnect bandwidth monitors, Sunplus SP7021 reset controllers, Sunplus SP7021 interrupt controllers, Microchip FPGA I2C controllers, and Renesas RZ/V2M interfaces.
  • Networking: Renesas RZ/N1 A5PSW Ethernet switches, Renesas RZ/N1 MII converters, Wangxun 10GbE PCI Express adapters, and Microchip LAN937x switches. There is also a new module that can repurpose ELM ELM327 OBD-II adapters as hobbyist-level CAN network interfaces.
  • Regulator: Richtek RT5120 PMIC voltage regulators, MediaTek MT6370 SubPMIC regulators, and Maxim 597x power switches.

Miscellaneous

  • The "efivars" interface in sysfs has been deprecated since 2012; in 6.0 it will be removed entirely. It is believed that all users have long since moved to the efivarfs interface for EFI data.

Networking

  • There are new BPF helpers for the generation and checking of SYN cookies. Documentation is absent, but there is a self-test to look at for an example.
  • There is also a new set of BPF kfuncs for accessing and modifying connection-tracking state.
  • The in-kernel TLS implementation has seen a number of performance improvements; see this blog post for details.

Security-related

  • The x86 kernel can now obtain a random-number seed from the setup data passed in by the bootloader. A similar feature has been added to the m68k kernel using that platform's bootinfo protocol.
  • The SafeSetID security module can now control changes made with setgroups().
  • The kernel has gained support for the ARIA block cipher algorithm.
  • The BPF security module now implements hooks attached to a control group as well as to a single target process.

Internal kernel changes

  • Running the KUnit unit tests will now taint the kernel, on the theory that some of those tests could leave the system in a bad state.

There are still over 6,000 changesets sitting in linux-next, so the 6.0 merge window is far from done. Assuming the usual schedule holds, the window will remain open through August 14; LWN will, of course, post a summary of the changes in the second half once it closes.

Index entries for this article
KernelReleases/6.0


to post comments

6.0 Merge window, part 1

Posted Aug 5, 2022 14:58 UTC (Fri) by Paf (subscriber, #91811) [Link] (2 responses)

“ Support for buffered writes (to XFS filesystems only for now) in io_uring has been considerably improved, increasing performance by a factor of two or so.”

Is there a specific thread/patch series where one could learn more about this?

Buffered writes in io_uring

Posted Aug 5, 2022 15:04 UTC (Fri) by corbet (editor, #1) [Link] (1 responses)

Here's the patch series.

Buffered writes in io_uring

Posted Aug 5, 2022 18:40 UTC (Fri) by Paf (subscriber, #91811) [Link]

Thanks, John!

Real-time?

Posted Aug 9, 2022 21:01 UTC (Tue) by david.a.wheeler (guest, #72896) [Link] (1 responses)

I hope the final real-time patches merge. They've been a long time coming and I look forward to seeing them in mainline.

Real-time?

Posted Aug 9, 2022 21:05 UTC (Tue) by corbet (editor, #1) [Link]

I don't think that's going to happen this time around. Some of the realtime work that has headed Linusward has had a grumpy reception, and there has been at least one outright rejection. It'll be at least one more cycle, and perhaps more than that.


Copyright © 2022, 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