[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
|
|
Subscribe / Log in / New account

The rest of the 6.5 merge window

By Jonathan Corbet
July 10, 2023
Linus Torvalds released 6.5-rc1 and closed the merge window for this development cycle on July 9. By that point, 11,730 non-merge changesets had been pulled into the mainline for 6.5; over 7,700 of those were pulled after the first-half merge-window summary was written. The second half of the merge window saw a lot of code coming into the mainline and a long list of significant changes.

The most interesting changes pulled in the latter part of the merge window include:

Architecture-specific

  • The Loongarch architecture has gained support for simultaneous multi-threading (SMT) and building with the Clang compiler.
  • RISC-V now supports ACPI and the Vector extension.

Core kernel

  • The function-graph tracer can now record and report the return value from functions; this documentation commit describes how to use this feature.
  • The timer-latency tracer can now be controlled and queried from user space; this commit contains some relevant documentation.
  • "fprobe events" are a new mechanism for tracing function entry and exit that is better supported on more architectures; this commit has some more information and this one has a new document.

    These events can also be used to easily trace raw tracepoints that lack a trace-event declaration. Raw tracepoints were created to make it harder to get at deeply internal kernel features, thus making it less likely that user space would come to rely on them; fprobe events are now making it easier again.

Filesystems and block I/O

  • The overlay filesystem has gained support for data-only layers, which is needed for composefs and similar use cases. This commit contains a small documentation update.
  • Overlayfs has also been ported to the new mount API.
  • The F2FS filesystem has a new errors= mount option to control the response to media errors; this commit contains some more information.

Hardware support

  • Clock: Amlogic A1 SoC PLL controllers, Amlogic A1 SoC peripherals clock controllers, Nuvoton MA35D1 clock controllers, Qualcomm SM8350, SM8450, and SM8550 video clock controllers, Qualcomm SDX75 global clock controllers, Qualcomm SM8450 graphics clock controllers, and Qualcomm SC8280 low power audio subsystem clock controllers.
  • GPIO and pin control: TI TPS65219 GPIO controllers, Mellanox BlueField 3 SoC GPIO controllers, STMicroelectronics STM32MP257 pin controllers, Qualcomm IPQ5018, SDX65 and SDX75 pin controllers, and NVIDIA Tegra234 pin controllers.
  • Graphics: Samsung S6D7AA0 MIPI-DSI video mode panel controllers and Amlogic Meson MIPI DSI Synopsys controllers.
  • Hardware monitoring: HP WMI sensors.
  • Industrial I/O: Texas Instruments OPT4001 light sensors, Honeywell MPRLS0025PA pressure sensors, and ROHM BU27008 color sensors.
  • Input: NVIDIA SHIELD devices.
  • Miscellaneous: StarFive JH7110 cryptographic engines, CXL 3.0 performance monitoring units, Richtek RT5033 battery chargers, Analog Devices MAX77541/77540 power-management ICs, Intel Cherry Trail Whiskey Cove LED controllers, Awinic AW20036/AW20054/AW20072 LED drivers, TI TPS6594 error signal monitors, TI TPS6594 pre-configurable finite state machines, Nuvoton MA35D1 family UARTs, AMD/Pensando DSC vDPA interfaces, Qualcomm PMI8998 PMIC chargers, OmniVision OV01A10 sensors, Microchip corePWM pulse-width modulators, Renesas RZ/G2L MTU3a PWM timers, Qualcomm DWMAC SGMII SerDes PHYs, and Xilinx window watchdog timers.
  • Sound: The kernel's sound subsystem has gained support for MIDI 2.0 devices, along with Realtek RT722 SDCA codecs, Analog Devices SSM3515 amplifiers, Google Chameleon v3 codecs, Google Chameleon v3 I2S interfaces, StarFive JH7110 TDM devices, Loongson I2S controllers, Loongson sound cards, Analog Devices MAX98388 speaker amplifiers, Texas Instruments TAS2781 speaker amplifiers, and Qualcomm WSA8840/WSA8845/WSA8845H class-D speaker amplifiers.
  • USB: Qualcomm PMIC USB Type-C controllers, Cadence USB3 controllers, Cadence USBHS device controllers, and On Semiconductor NB7VPQ904M Type-C redrivers.

Miscellaneous

Internal kernel changes

  • The scope-based resource management patches have been merged, but there are unlikely to be any uses of this mechanism in the 6.5 release. Torvalds said:

    However, let's agree to not really use it for 6.5 yet, and consider it all purely infrastructure for the next release, and for testing it all out in linux-next etc.

    We should probably also strive to avoid it for bug-fixes that end up going to stable. I'm sure this will all be backported to stable eventually, but I'd at least personally be happier if that started happening only after we actually have some more interaction with this.

  • It is common knowledge that Linus Torvalds does not write much code anymore. That doesn't keep him from getting his hands dirty on occasion, though, as the merging of his "expand stack" series shows. The adoption of the maple tree data structure complicated the task of expanding the user-space process stack, breaking the locking (or lack thereof) that had been in use creating the "StackRot" vulnerability. So Torvalds dug in, unified much of the architecture-specific page-fault code, and fixed the problem.

    One of the cases that the new code does not handle is expanding the stack in response to a get_user_pages() call — something that Torvalds does not think should ever happen. There is a warning in place for the rest of the development cycle to sound the alarm if that assumption turns out to be wrong.

  • The 32-bit devicetree files have been massively reorganized to more closely match the 64-bit files. "The impact of this will be that all external patches no longer apply, and anything depending on the location of the dtb files in the build directory will have to change."
  • Following the LSFMM+BPF discussion, the SLAB allocator has been deprecated and will, barring problems, be removed in a future development cycle.
  • The new SLAB_NO_MERGE flag will prevent the slab allocators from merging a cache with (otherwise) compatible caches.
  • There were 371 exported symbols added during this merge window and 94 removed; see this page for a full list. Two kfuncs (bpf_cpumask_any() and bpf_cpumask_any_and()) were removed, and five (bpf_cpumask_any_and_distribute(), bpf_cpumask_any_distribute(), bpf_cpumask_first_and(), bpf_sock_destroy(), and bpf_task_under_cgroup()) were added.

The most significant change that was not merged was bcachefs, despite its author having sent a pull request at the beginning of the merge window. The resulting thread showed that, while quite a few developers seem to want this code merged into the mainline, there are still a number of outstanding issues that need to be addressed and, to put it gently, a certain amount of tension with much of the development community. There is a reasonable chance that all of this will be worked out in time for 6.6, but it may be a noisy process.

Meanwhile, the next seven or eight weeks will be dedicated to the stabilization of all of this new code, with the final 6.5 release expected on either August 27 or September 3.

Index entries for this article
KernelReleases/6.5


to post comments

The rest of the 6.5 merge window

Posted Jul 11, 2023 0:44 UTC (Tue) by nevets (subscriber, #11875) [Link]

>These events can also be used to easily trace raw tracepoints that lack a trace-event declaration. Raw tracepoints were created to make it harder to get at deeply internal kernel features, thus making it less likely that user space would come to rely on them; fprobe events are now making it easier again.

It's not easy enough for an application to rely on it. There's nothing that exposes the tracepoint that you want to connect to. You have to read the code to see if it exists or not. It's no different than adding a kprobe trace to a function.


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