LWN Weekly Edition - May 21, 2026
📰 本期概览
2026 年 5 月 21 日的 LWN 周刊以 LSFMM+BPF 2026 峰会专题报道为绝对主线——本期 13 篇文章里有 10 篇都是 Jonathan Corbet 和 Jake Edge 从 Linux 存储/文件系统/内存管理/BPF 年度大会现场带回来的深度议题,从 buffered atomic writes、CXL、MGLRU 重构到 per-CPU 分配器、swap 子系统改造,几乎覆盖了内核 MM 子系统当下所有热点。社区话题方面,openSUSE 因为在站点 ToS 里加入 16 岁年龄限制引来开发者反弹,而第十届 OpenPGP Email Summit 则带来了后量子加密落地、邮件默认签名、OpenPGP.org 域名易主等多个值得关注的方向。
📊 共 13 篇文章 · 评论总数 59 · 评论最多:「openSUSE "terms of site" raise complaints about age restrictions」(17 posted)
🔥 文章详情
Front page
本期开篇导读:openSUSE 年龄限制争议,加上 LSFMM+BPF 2026 峰会一连串重磅议题——buffered atomic writes、anonymous reverse mapping 重写、policy groups、HugeTLB 跨 live update 保留、BPF 介入 MM、swap 子系统改造等等。基本就是一期"内存管理大会专刊"。
openSUSE 在 2026 年 3 月 10 日悄悄给站点条款加了一行:"使用本站须年满 16 岁或所在司法管辖区成年年龄"。问题是 ToS 同时规定"只要使用就视为同意"——这相当于禁止未成年用户连文档和博客都不能看。社区反弹后条款已被修改,现在 16 岁以下用户仍可注册账号但需家长同意。文章质疑这种条款的可执行性,并指出很多 Linux 老用户都是在 16 岁前就开始用、并参与开源贡献的。
由 Heiko Schäfer、Andrew Gallagher、David Runge 联合投稿。第十届 OpenPGP Email Summit 于 2026 年 3 月召开,参会方涵盖 Delta Chat、Proton、Thunderbird、Sequoia-PGP、keys.openpgp.org 等十余个项目。重点议题:多个厂商今年内将推出后量子加密(PQC)支持;一项"让 OpenPGP 签名邮件成为默认"的新方案;为 OpenPGP 引入前向保密 / 可靠删除特性的新草案;以及 Phil Zimmermann 计划交接 OpenPGP.org 域名的治理安排。
Kernel — LSFMM+BPF 2026 现场
LSFMM 头炮、连开三个时段。Pankaj Raghav 与 Andres Freund 以 PostgreSQL 为典型用例介绍 buffered atomic writes 的动机——PG 默认 8KB page,没有块层原子性保证时只能靠 full-page-writes 写 WAL 来防止 torn write。Ojaswin Mujoo 提出了基于 writethrough 的实现路径:内核直接写盘而不等 page cache 回写。文件系统与存储两个 track 的开发者就此展开激烈讨论。
Lorenzo Stoakes 抱怨匿名页 reverse mapping 代码"在很多地方根本看不懂"。这块机制最早是 Rik van Riel 在 2002 年加进来以避免扫描全系统页表,2004 年 Andrea Arcangeli 大幅重写,此后二十年只增不减、越来越复杂,而且还涉及跨函数持锁等设计问题。本次议程是探讨能否给匿名 rmap 来一次系统性简化。
control group 的两大隐含假设——父组资源 ≥ 子组、统一层级——在很多场景里并不成立。Chen Yu 举例:服务级目标(SLO)下子组完全可能比父组"更快";多速度 swap 设备分层(swap-tiers)正是因为不匹配 cgroup 模型而进不了主线。议程探讨能否给"和进程没必然绑定的策略"造一个更轻的 policy group 抽象。
Pratyush Yadav 介绍 live update 进展:kexec handover + live update orchestrator 已在 6.19 合并,可在 kexec 换内核时通过 memfd 保留虚拟机内存。但生产中虚拟机更多是跑在 hugetlbfs 上,本次议程就是要把 HugeTLB 加入可保留资源清单——典型云厂商"不停虚拟机换 host 内核"的拼图正在补齐。
回顾用 BPF 控制 OOM、NUMA balancing、memcg、page-cache eviction 的多个尝试,并提出 readahead、madvise()、KSM、guest memory 等更多潜在场景。最大障碍是"out-of-tree"问题——BPF 维护者 Alexei Starovoitov 直言"sched_ext was a mistake",因为生产级 sched_ext 调度器都顽固地留在树外,没有给主线带回反哺。这成了主线开发者警惕给 MM 加 BPF 钩子的核心理由。
Kairui Song 汇报 swap 子系统改造成果:7.0 合入的 swap table 让每页固定开销从 3–11 字节降到 2–10 字节(现场掌声),下一目标是把静态开销压到 0、上限收到 8 字节,长期目标 3 字节。swap cache bypass 已被移除,大部分 helper 改用 folio。是 swap 子系统多年来最深入的一轮简化。
per-CPU 分配器源自 Tejun Heo 在 2.6.30(2009)合入的版本。重点讨论 mm_struct 里的 rss_stat 计数器:高线程进程下 per-CPU 计数能避开热点,但获取全局总和时要遍历所有 CPU,开销可能反过来吃掉收益。本次议程是要给 per-CPU API 来一轮整理,包括补上正式的使用文档。
CXL(基于 PCIe 的内存扩展)延迟普遍比远端 NUMA 节点还差,但可配置性是其卖点(如内存交织)。挑战:内核与固件抢着管它;热插拔导致系统 RAM "随时消失";标准演进飞快、厂商各自魔改。社区开始仿照 ACPI 的 "code-first" 思路,把厂商的非标准行为直接写进内核树文档,目的是"统一坏的姿势",告诉新厂商:要破也按这个破。错误处理仍是开放领域。
Shakeel Butt 火力全开:"内核内存回收一团糟"——mm/vmscan.c 8000+ 行,40% 是 MGLRU 专属代码,与传统 LRU 路径功能重复,"每个 bug 修两遍、每个优化做两遍,不然只惠及一半用户。不可持续,必须停。" 他与 Emil Tsalapatis 不打算二选一,而是寻找尽可能多的统一点。难点:MGLRU 原作者 Yu Zhao 已从社区消失,吃透两套实现的人不多。
x86 靠段寄存器让 per-CPU 访问退化为单条原子指令;Arm 等架构没有段寄存器,地址计算和访存必须分两步,被抢占或迁移时可能跨 CPU 错访。当前 this_cpu 实现因此要禁抢占,本质上把性能让给了正确性。议程探索在非 x86 架构上如何更聪明地把 this_cpu 操作做得既正确又快。
💬 热点讨论
本期没有评论数超过 30 的"热帖",社区讨论相对克制。评论最集中的两篇是「openSUSE 年龄限制」(17 条)与「Welcome」开篇导读(17 条);其次是 OpenPGP Email Summit(11 条)——一个关于年轻贡献者准入、一个关于邮件加密的未来。LSFMM 系列虽然技术含量满满,但基本都是 1 条评论的"专业静默"。
评论