今天 Linux 内核圈,值得花 3 分钟看两件事:Linux 7.2 正式发布(7.3 合并窗口随之开启),和 mm 抛出一份 57 帖 RFC,要把 THP 折叠机制重建在迁移原语上。
🎬 今日导读
•头条:Linux 7.2 正式发布,7.3 合并窗口开启,net-next 冻结
•头条:mm/collapse 57 帖 RFC:把 THP 折叠重建在迁移原语上
•sched:proxy execution 兼容 sched_ext,v12 17 帖
•DRM:61 帖全驱动迁 atomic_create_state、删 plane reset
•机制:virtio 管理通道扩到 ethtool 流规则 · mq 批量收发新 syscall
💡 今日头条
Linux 7.2 正式发布:7.3 合并窗口开启,新功能将集中涌入
〔08-17 07:08 北京〕· Linux 7.2
•现状:Linux 按约 10 周一个周期发布正式版本。v7.2 从 6 月的 rc1 一路走到 8 月的 rc8,候选版(rc)阶段只收 bug 修复、不接新功能。
•痛点:正式版必须是一个足够干净的基线:任何回归都要在发布前被摁住,发布时机的拿捏很关键。
•方案:Linus 于 08-17 07:08(北京)发布 Linux 7.2 正式版——rc8 之后直接收尾,说明最后一周足够稳。随后 7.3 的合并窗口(merge window)立即开启:各子系统维护者开始提交 GIT PULL,今天已看到 Rust for v7.3、pwm for 7.3-rc1。net-next 因此宣告关闭(网络子系统要求 net-next 树在合并窗口期间冻结,保证合入 mainline 的基线稳定)。
•为什么:先发正式版、再开合并窗口,是内核沿用几十年的节奏:正式版给发行版一个稳定基线,合并窗口则集中吸收各子系统 next 树攒了两个多月的功能。
•效益:对普通用户:7.2 是可直接升级的稳定版。对贡献者:未来两周是「补丁最容易合入」的窗口,攒了半年的功能树都在往 mainline 汇。
•下一步:7.3-rc1 预计两周后发布;这两周内合并窗口持续开放,各子系统的大系列会陆续合入。
一句话点评:版本节奏照常:7.2 收官、7.3 开闸——未来两周是内核新功能最密集的时间窗
🔗 原文
mm 抛 57 帖 RFC:把 THP「折叠」重建在迁移原语上
〔08-17 06:46 北京〕· [RFC PATCH 00/57] mm/collapse: rebuild collapse on migration primitives
•现状:khugepaged 是内核的后台线程,负责把地址空间里的 4KB 小页「折叠」成 2MB 的 THP(透明大页),减少页表开销、提升 TLB 命中;MADV_COLLAPSE 是用户态主动请求折叠的接口。这套机制与 mm 的页迁移(migration)是两套各写各的代码。
•痛点:现有 collapse 路径对「被固定(pinned)的页、被 swap 出去的页、部分映射的页」等边界处理很别扭,并发时容易产生竞态;候选目标的判定也不够严谨。
•方案:Kirill Shutemov 的 57 帖 RFC 标题即主题:把 anonymous collapse 引擎整个重建在「迁移原语」之上——用 migration entries 冻结源页、把 collapse 拆成 scan(扫描)与 run(执行)两个阶段、引入「round」批量处理候选窗口的模型,并配 50+ 个 selftests(覆盖 mlocked、pinned、MADV_FREE、sub-PMD VMA 等边界)。
•为什么:迁移原语是 mm 里被大量路径验证过的机制(页迁移、NUMA balancing、memory hotplug 都在用)。把「如何安全地搬动页」交给已充分测试的代码,自己只留「何时折叠」的策略——典型的复用已验证原语、替换手搓特殊路径。
•效益:若落地,collapse 的并发正确性大幅变硬,pinned 页、mlock 区域等边界的处理统一;THP 折叠机制的分层也更清晰。这是 mm 方向近期最大的动作之一。
•下一步:RFC 尚在征集 review:57 帖量大,等 mm 维护者与社区逐帖过。想理解 THP / 页迁移底层的人,这是份好教材。
一句话点评:方向性很强的机制重构:复用成熟迁移原语重写折叠引擎——值得长期跟进
🔗 原文
📰 sched
★proxy execution 兼容 sched_ext:v12 17 帖推进「代理执行」入可编程调度
〔08-17 01:37 北京〕· [PATCHSET v12 sched_ext/for-7.3] sched: Make proxy execution compatible with sched_ext
•定位:sched_ext(可扩展调度器框架)层:让用 BPF 写的调度器也能用上「代理执行」。
•做法:17 帖把 proxy execution 与 sched_ext 打通:加 sched_ext 专用钩子、修复 ops.running/stopping() 的配对、把 donor(代理者)准入下放给 BPF 调度器、scx_qmap 示例支持,并在最后允许在 sched_ext 下开启 proxy exec。另有两帖独立跟进修复(醒来 donor 的入队时机等)。
•效益:持锁阻塞导致的调度延迟这类问题,未来可以写成 BPF 调度策略解决;v12 说明已打磨很久,目标是 7.3。
和你相关:sched_ext 是「内核调度器可编程化」的最前沿,想用 BPF 写调度策略的人会持续关注它。
🔗 原文
📰 mm
★DAMON 接上 ARM SPE:硬件级访存轨迹进内存访问监控
〔08-16 22:22 北京〕· [RFC PATCH 0/4] mm/damon/perf: add ARM SPE AUX backend
•定位:mm 的 DAMON(内存访问监控框架)层 + ARM SPE 硬件采样。
•做法:引入 AUX backend 接口,用 ARM SPE 的 trace buffer(辅助跟踪缓冲区)给 DAMON 喂真实访存记录,附 KUnit 测试与 selftest。
•效益:相比软件采样,DAMON 能拿到硬件级访存序列,访问模式分析更准——对内存热点 / 冷数据识别的上层工具是好消息。
和你相关:DAMON 常被用作「内存画像」的数据源,硬件采样喂数据会让分析类工具更可信。
🔗 原文
📰 DRM
★DRM 大扫除:61 帖把全部驱动迁到 atomic_create_state,删掉 plane reset
〔08-16 22:05 北京〕· [PATCH v2 00/61] drm/plane: Convert all drivers to atomic_create_state and remove reset
•定位:drm-core 的 plane 状态管理层:所有驱动共用的 plane 状态创建钩子。
•做法:把全部驱动从老的 drm_plane->reset() 钩子迁移到新的 atomic_create_state() 接口,最后删掉 reset 路径;v2 共 61 帖,覆盖 sun4i、vc4 等几乎所有驱动。
•效益:plane 状态对象的创建统一到 atomic 框架,消除一类 reset/dup/销毁不一致带来的状态泄漏与竞态。
和你相关:这是 DRM core 的地基级重构,跟 KMS 打交道的驱动开发者都会受影响。
🔗 原文
📰 net
★virtio_net 补上 ethtool 流规则:v22 让 guest 也能硬件分流
〔08-16 20:21 北京〕· [PATCH net-next v22 00/14] virtio_net: Add ethtool flow rules support
•定位:virtio_net 驱动 + virtio 管理通道(admin commands / config_op)层。
•做法:v22 共 14 帖,给 virtio_net 加 ethtool 流规则:先扩展 virtio 层的管理命令接口,再支持 IPv4/IPv6/TCP/UDP/L2 规则与 ethtool 导出。
•效益:云环境里 guest 侧可以按流做硬件级分流(把指定流量导到特定 virtqueue),v22 说明这是被反复打磨的老系列。
和你相关:virtio-net 是所有云虚拟机的网络底座,这条能力会影响虚拟化网络的可编程性。
🔗 原文
更多动态 · net / DRM
○[PATCH net] net/tcp-ao: fix use-after-free of current_key on reconnect〔08-17 05:28〕
○[PATCH net 0/1] seg6: reset IP6CB after IPv6 decapsulation〔08-17 00:09〕
○[PATCH bpf] bpf: free page_pool frags via the page_pool path in bpf_xdp_shrink_data〔08-16 11:13〕
○[PATCH 0/4] drm/imagination: Add async VM_BIND with sparse mappings〔08-17 03:43〕
○[PATCH 0/2] drm/amdgpu/userq: fix a leaked fence driver and an unlocked doorbell walk〔08-17 00:11〕
○[PATCH v2] drm/nouveau/svm: drain fault handler before freeing svmm〔08-16 22:05〕
📰 arch
★内核要加两个新系统调用:POSIX 消息队列也能批量收发
〔08-16 23:39 北京〕· [PATCH v3 0/4] Add two new system call mq_recvmmsg() and mq_sendmmsg()
•定位:arch 系统调用 ABI 层 + POSIX 消息队列(mqueue)IPC。
•做法:新增 mq_recvmmsg() / mq_sendmmsg() 两个系统调用,让消息队列支持批量收发(类似已存在的 recvmmsg/sendmmsg),并给 arm64、x86 等主流架构登记 syscall 号。
•效益:批量收发一次 syscall 处理多条消息,降低 IPC 开销;新系统调用是 ABI 级变更,合入门槛高、信号强。
和你相关:加系统调用是内核里少有的 ABI 级动作,说明 mqueue 批量场景有真实需求。
🔗 原文
📰 media
★FPGA 编程走 dma-buf:大比特流不再反复拷贝
〔08-16 23:07 北京〕· [PATCH 0/2] fpga: add dma-buf based FPGA programming interface
•定位:fpga(FPGA manager)子系统 + dma-buf 跨设备共享内存抽象层。
•做法:新增基于 dma-buf 的 FPGA 编程接口:用户态用 dma-buf 提供比特流缓冲区,AMD Versal 落地示例。
•效益:编程大 FPGA 镜像时省掉内核态 / 用户态反复拷贝,还能走 zero-copy 路径。
和你相关:这是 dma-buf 交叉层的新应用——媒体(相机 / 显示)也天天用 dma-buf,机制同源。
🔗 原文
更多动态 · 其他板块
○[PATCH] media: i2c: ov08x40: implement crop selection〔08-17 04:49〕
○[PATCH] media: i2c: imx471: return 0 for V4L2_SEL_TGT_CROP〔08-17 03:43〕
○[PATCH] fs/ntfs3: prevent attribute-list pointer underflow〔08-17 01:37〕
○[PATCH] cachefiles: Fix OOB access in coherency trace〔08-17 02:56〕
○[GIT PULL] Block fix for 7.2-final〔08-16 11:03〕
○[GIT PULL] Rust for v7.3〔08-17 03:20〕
○[PATCH 0/2] PCI/CXL: Distinguish CXL capabilities in MCAP〔08-16 17:05〕
○[PATCH] kho: fix signed shift UB in kho_preserved_memory_reserve()〔08-16 17:00〕
📊 板块活跃度
近 24h 各板块补丁量(13 板块统一统计):lkml 729 领跑(今天被 57 帖 collapse RFC + 17 帖 proxy exec 系列灌满),net 122、mm 109、DRM 91 紧随,block 27、media 22、PCI 18、arch 10、Rust 8、fs 7、LSM 3;virtio 与 rt 静默。合并窗口开启的第一天,各子系统都在往 mainline 赶货。
📌 机制雷达:6 条跨域大改动
•collapse 重建:把 THP 折叠引擎换到迁移原语上(头条 2)· 原文
•proxy exec × sched_ext:「代理执行」向可编程调度开放(sched 栏)· 原文
•plane 状态统一:全驱动迁 atomic_create_state、删 plane reset(DRM 栏)· 原文
•virtio 管理通道:admin commands / config_op 支撑 ethtool 流规则(net 栏)· 原文
•新系统调用:mq_recvmmsg / mq_sendmmsg 批量收发消息队列(arch 栏)· 原文
•dma-buf 编程:FPGA 比特流走 dma-buf 零拷贝(media 栏)· 原文
📖 本期概念速查
•merge window(合并窗口):正式版发布后约两周、只吸收新功能的窗口期;期间 net-next 等子系统树保持冻结。
•THP / collapse(透明大页折叠):把 4KB 小页合并成 2MB 大页,减少页表、提升 TLB 命中;khugepaged 后台线程 / MADV_COLLAPSE 主动触发。
•migration entries(迁移条目):页迁移期间留在页表里的占位条目,让并发访问者知道该页正在被搬走。
•sched_ext:可扩展调度器框架,允许用 BPF 程序实现调度策略。
•proxy execution(代理执行):持锁阻塞的任务让另一个可运行任务代为运行的调度技术,降低持锁唤醒延迟。
•dma-buf:内核跨设备共享内存的抽象,用于 zero-copy 传数据(媒体、FPGA 编程、GPU 都在用)。
•ethtool flow rules:通过 ethtool 配置硬件流量分流规则,把特定流量导向特定队列。
如果对你有用,点个赞,或留言聊聊你最关心的板块。
数据来源:lore.kernel.org(全内核 13 列表)· 北京时间