sched discussion
Re: Linux 6.6.145
LLM 分析
Linux 6.6.145 稳定版发布通告
系列概况
- 标题: Linux 6.6.145
- 作者: Greg Kroah-Hartman (gregkh)
- 版本: 6.6.145(stable 分支上的第 145 个 6.6.y 修订版)
- 规模: 公告中列出的修改文件超过 200 项,涵盖 cpufreq、crypto、devicetree、PCI、ARM/ARM64 DTS、nvdimm、netlink 等多个子系统
- 修改文件: 文档类(cpufreq.rst、crypto/userspace-if.rst、btt.rst、pci.rst、proc.rst 等)、devicetree bindings(allwinner、renesas、nvidia、mediatek、qcom 等)、架构与平台代码(arm、arm64、alpha)、Makefile 等
- 代码统计: 邮件正文中只显示了部分 diff(cpufreq.rst +6/-6、crypto/userspace-if.rst +10/-33),完整统计需查看 stable git tree
- Message-ID: 2026072446-unsolved-treble-c609@gregkh
- 完整性: 邮件正文中的文件清单被截断(以 "...qcom/sd" 结尾),其余 commit 需自行到
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git的linux-6.6.y分支核对
补丁目的
本通告不是某个具体补丁系列的讨论,而是 stable kernel 例行发布:
- 把过去一段时间被合并进
linux-6.6.y分支的若干修复(文档、driver、arch、filesystem、netlink 等)打包成 6.6.145 tag 释放。 - 提醒所有使用 6.6 内核的用户必须升级,因为这些 commit 中通常包含 CVE 修复或稳定性修复。
- 提供获取方式:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git的linux-6.6.y分支。
线程正文贴出的两段 diff 只是这次发布中随机挑选的两处可见改动:
Documentation/admin-guide/pm/cpufreq.rst— 调整schedutilgovernor 的可调参数文档。Documentation/crypto/userspace-if.rst— 删除关于splice/vmsplice零拷贝接口的过时描述。
Patch 概览
线程里只露出两个 diff hunk,但它们分别覆盖了两条不同的子系统:
- cpufreq 文档调整 — 把 "Temporary multiplier" 的取值上限从 100 改成 100000;并明确说明将该值设为 0 时 governor 不再做频率切换,而设为 100 时仍然是周期性恢复默认步长。
- crypto 用户态接口文档精简 — 删掉一段对 AF_ALG zero-copy(基于 splice/vmsplice)的描述,因为该接口已经被移除或不再推荐使用。
/* doc change only, no new code, illustrative behavior */
governor = schedutil;
multiplier = 100000; /* new doc upper bound, was 100 */
if (multiplier == 0)
/* governor fully skips freq scaling ("disables frequency changes") */
;
else if (multiplier == 100)
/* restore 5% default step, periodic */
;
+-----------------------+ +-----------------------------+
| 6.6.144 release note | ---> | 6.6.145 release note |
| (previous stable tag) | | linux-6.6.y branch accum. |
+-----------------------+ | fix/doc/driver changes |
+-----------------------------+
|
v
+-------------------------------+
| user pulls linux-6.6.y and |
| upgrades from kernel.org |
+-------------------------------+
cpufreq doc semantics change:
multiplier == 0 -> governor stops freq scaling
multiplier == 100 -> restore 5% default step
upper bound -> [1, 100000] (was [1, 100])
关键实现
cpufreq.rst
Temporary multiplier范围:文档把上界从 100 改成 100000,对应内核中 multiplier 字段类型扩展或允许更大倍率(避免 schedutil 在高内核数机器上 100 上限过紧)。- 0 值语义:原文含糊地说 "set it to 0 will cause the default frequency step (5 percent) to be used",新文档明确 0 表示 停用频率切换;这与内核实现里把 multiplier 当作 "禁用开关" 的语义一致,避免用户误以为 0 = 默认步长。
crypto/userspace-if.rst
- 删除
splice/vmsplice零拷贝段:AF_ALG 零拷贝路径在现代内核里已经走sendmsg/recvmsg,保留旧文字会让用户尝试已废弃的调用方式。文档瘦身(-33 行)正反映了接口实际被裁剪。 - 触发条件一般是上游 commit 把相关 API 移除/废弃后,顺手把文档清理掉。
类比
把 stable 6.6.145 想成 酒店每周大扫除:
- 6.6 主线是刚开业时一次性装修好的大堂;每个 6.6.x 是后续每周一次的小修小补;6.6.145 是某一周扫除清单特别多的一次(包含 doc 错别字、灯泡烧坏、热水器漏水、门锁卡顿)。
- cpufreq 文档上界从 100 调到 100000,就像把水龙头的最大流量标识从 "100L/h" 改回真实规格 "100000",避免客人以为水压不够其实是铭牌错了。
- 删除 crypto 零拷贝段落,相当于把大堂里指向已经撤走的旧 SPA 馆的指示牌拆掉,防止客人跑冤枉路。
Highlight:风险与注意点
- 频道错配:本帖来自
sched频道,但内容是 stable 跨子系统通告,并非 scheduler 专属讨论;过滤 "scheduler" 相关线索时不能只看频道名。 - diff 截断:邮件正文里
qcom/sd...后面的内容被截掉,绝对不能直接拿这一份邮件当作完整 changelog;升级前必须 diff 完整的linux-6.6.144..linux-6.6.145。 - silent doc-only fix 不等于无风险:cpufreq 文档把上限抬到 100000 暗示内核 multiplier 字段已经能承载更大数值;如果用户/发行版从 100000 反推历史行为或脚本判断,可能与旧版本不一致。
- stable 升级节奏:6.6 已经是 LTS-like 系列,Greg 维持每周一版的节奏,意味着 6.6.144 -> 6.6.145 的窗口只有一周,回退成本可控,但需要 CI 在每个 tag 上跑一遍。
- 可观察验证点:升级后应核对
scaling_governor默认 multiplier 上限、AF_ALGsplice 路径的兼容性测试、平台 DTS(imx8mp、tegra234、qcom sdm630 等)的启动日志。
版本变化
本线程仅一份 6.6.145 通告,没有 vN -> vN+1 的多轮迭代可以对照;可对照的纵向信息只有:
- 6.6.144 -> 6.6.145:本帖。
- 后续(如 6.6.146)需要等下一次 stable 公告。
一句话总结
这是 Greg KH 发布的 Linux 6.6.145 稳定版例行通告,跨子系统聚合大量文档与驱动修复,邮件里只露出 cpufreq 上限放宽与 crypto 零拷贝文档清理两段 diff,不能视为完整 changelog,升级前需自行核对 linux-6.6.y 分支。