|
|
Subscribe / Log in / New account

The rest of the 6.17 merge window

By Jonathan Corbet
August 11, 2025
The 6.17-rc1 prepatch was released by Linus Torvalds on August 10; the 6.17 merge window is now closed. There were 11,404 non-merge changesets pulled into the mainline this time around, a little over 7,000 of which came in after the first-half merge-window summary was written. As one would expect, quite a few changes and new features were included in that work.

Some of the most significant changes pulled into the mainline during the second half of the 6.17 merge window are:

Architecture-specific

  • Support for BPF has been improved for the LoongArch architecture, which can now handle dynamic code modification, BPF trampolines, and struct ops programs.
  • S390 systems now support the swapping and migration of transparent huge pages.

Core kernel

  • The BPF subsystem now exports a set of standard (but read-only) string operations for BPF programs; there is no documentation, but the functions can be found in this commit.
  • BPF programs now have standard output and error streams that can be used to communicate back to user space; see this commit for details.
  • The new DAMON_STAT kernel module provides simplified monitoring of memory-management activity in the system; see this changelog and Documentation/admin-guide/mm/damon/stat.rst for more information.
  • It is now possible to control the aggressiveness of the proactive-reclaim machinery on a per-NUMA-node basis, allowing some nodes to more actively evict pages than others. See this changelog for details.
  • The extensible scheduler class now has support for control-group-based bandwidth control (specifically the cpu.max parameter described in this document).

Hardware support

  • Clock: Renesas RZ/T2H clocks, SpacemiT reset controllers, Qualcomm SM6350 video clock controllers, Qualcomm SC8180X camera clock controllers, multiple Qualcomm QCS615 clock controllers, and multiple Qualcomm Milos clock controllers.
  • GPIO and pin control: ESWIN EIC7700 pin-control units, Qualcomm Milos pin controllers, STMicroelectronics STM32 hardware debug port pin controllers, and MediaTek MT8189 pin controllers.
  • Graphics: Renesas R69328 720x1280 DSI video mode panels, Himax HX83112B-based DSI panels, and Intel Discrete Graphics non-volatile memory.
  • Miscellaneous: Qualcomm M31 eUSB2 PHYs, Sophgo CV1800/SG2000 series SoC DMA multiplexers, Sophgo DesignWare PCIe controllers (host mode), Renesas I3C controllers, Broadcom BCM74110 mailboxes, and Aspeed AST2700 mailboxes.
  • Networking: Qualcomm IPQ5018 Internal PHYs, Airoha AN7583 MDIO bus controllers, Broadcom 50/100/200/400/800 gigabit Ethernet cards, Microchip Azurite DPLL/PTP/SyncE devices, and Realtek 8851BU and 8852BU USB wireless network (Wi-Fi 6) adapters.

Miscellaneous

  • The runtime verification subsystem has gained support for linear temporal logic monitors; this commit provides documentation. There is a new monitor, rtapp, that looks for common problems in realtime applications; see this commit for documentation. Finally, the new nrp, sssw, and opid monitors are available for internal scheduler testing.
  • The automatic mounting of the tracefs virtual filesystem on /sys/kernel/debug/tracing has been deprecated; scripts should be using /sys/kernel/tracing instead. The current plan is to remove that automatic mount in 2030.
  • See this merge message for a summary of the numerous changes to the perf tool in 6.17.
  • There is a new option to reserve space for kernel crash dumps from the contiguous memory allocator, making that memory available for use by the kernel prior to a crash. See this documentation patch for details.

Networking

  • Support for RFC 6675 loss detection has been removed from the kernel. This protocol has long been considered obsolete and has not been used by default since 2018. At this point, it seems that everybody is using RACK-TLP instead.
  • The power sourcing equipment (PSE) implementation has gained support for configurable budget-evaluation strategies, which are "utilized by PSE controllers to determine which ports to turn off first in scenarios such as power budget exceedance". See this changelog for some more information.
  • Support for gateway routing has been added to the Management Component Transport Protocol (MCTP) subsystem; see this merge message for an overview.
  • The new SO_INC option for AF_UNIX sockets mirrors TCP_INQ; it will cause a control message to be placed on the socket indicating how much data is available to be read there. Similarly, SIOCINQ has been added for the VSOCK address family.
  • The TCP implementation has traditionally been forgiving about accepting data beyond the advertised receive window; that comes to an end in 6.17, which enforces the window limit more strictly.
  • Multipath TCP now supports the TCP_MAXSEG socket option to set the maximum size of outgoing segments.
  • Support for the DualPI2 (RFC 9332) congestion-control protocol has been added; see this commit for an overview of the Linux implementation.
  • The new force_forwarding sysctl knob allows the administrator to enable forwarding on specific IPv6 interfaces.

Security-related

  • The AppArmor security module has gained the ability to control access to AF_UNIX sockets. See this commit changelog for an overview of how it works.

Virtualization and containers

Internal kernel changes

  • Memory managed by the networking subsystem's page pool is now referred to using struct netmem_desc rather than struct page. This work is part of the ongoing process of moving from struct page to descriptors specific to the way each folio is being used.
  • The deferred unwind infrastructure — a needed precursor for the work to add SFrame-based stack unwinding — has been merged. The SFrame work itself will seemingly wait for another development cycle.
  • Rust support has been added for the warn_on!() macro, delayed workqueue items, a UserPtr type for user-space pointers, and more; see this merge message for a list.
  • The gconfig kernel-configuration tool has been migrated to the GTK 3 toolkit.
  • There were 171 exported symbols removed, and 523 added this time around; see this page for the full list. Developers also removed seven kfuncs (scx_bpf_consume(), scx_bpf_dispatch(), scx_bpf_dispatch_from_dsq(), scx_bpf_dispatch_from_dsq_set_slice(), scx_bpf_dispatch_from_dsq_set_vtime(), scx_bpf_dispatch_vtime(), and scx_bpf_dispatch_vtime_from_dsq()) and added 15 others (bpf_arena_reserve_pages(), bpf_cgroup_read_xattr(), bpf_strchr(), bpf_strchrnul(), bpf_strcmp(), bpf_strcspn(), bpf_stream_vprintk(), bpf_strlen(), bpf_strnchr(), bpf_strnlen(), bpf_strnstr(), bpf_strrchr(), bpf_strspn(), bpf_strstr(), and bpf_stream_vprintk()).

Notably absent from the 6.17 merge window was any action on the bcachefs pull request. In the contentious conversation that has followed, bcachefs developer Kent Overstreet said: "I just got an email from Linus saying 'we're now talking about git rm -rf in 6.18'", but no further information is available publicly.

The 6.17 kernel now goes into the stabilization phase, with the mostly likely date for the final release being September 28.

Index entries for this article
KernelReleases/6.17


to post comments


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