sched discussion
[PATCH] sched/fair: Remove unused autogroup.h include
LLM 分析
sched/fair:移除未使用的 autogroup.h 头文件 include
系列概况
- 标题:
[PATCH] sched/fair: Remove unused autogroup.h include - 作者:Kayra Cizmeci kayracizmeci@gmail.com
- 版本:单 patch,无版本号(非 v2/v3 重发)
- 规模:1 个文件、1 行删除
- 修改文件:
kernel/sched/fair.c - 代码统计:1 deletion(-)
- Message-ID:
20260726160238.107142-1-kayracizmeci@gmail.com - 完整性:共 2 封邮件——首封 patch,以及约 5 周后作者本人发出的 gentle ping;线程内没有 maintainer 回复
补丁目的
删掉 kernel/sched/fair.c 顶部 include 块中的一行 #include "autogroup.h"。
这行 include 属于历史遗留:fair.c 里没有任何代码引用 autogroup.h 声明的符号。作者的判断依据是 autogroup.h 对外暴露的符号都带 autogroup 字样,而在 fair.c 中 grep autogroup 只命中 include 那一行本身。
删除后不改变任何编译产物与运行行为,只是让 scheduler 内部的头文件依赖关系更精确,减少后续读者的误解成本。
关键实现
改动落在 fair.c 顶部 include 块(第 56 行附近):
#include "sched.h"
#include "stats.h"
-#include "autogroup.h"
作者在提交信息之后的 --- 区(不进入 git history 的说明段)给出了两层验证:
- 静态检查:
grep autogroup kernel/sched/fair.c唯一命中即这一行 include,没有函数调用、宏使用或变量引用。 - 启动验证:在 Lima 里跑 QEMU,x86_64 defconfig、4 CPU、busybox,内核可正常启动。
此外提交基于明确的 base-commit: 3dab139d4795f688e4f243e40c7474df00d329d9,方便 maintainer 直接 apply——这是新手 patch 里值得肯定的细节。
类比
像整理钱包时发现一张从未刷过的会员卡:留着不会出错,但它会一直占位,还让人以为"这家店我常去"。抽掉它既不影响任何交易,也让剩下的卡片一眼看清。
再换个角度:这行 include 相当于代码的"死进口"——报关单上写着进了一批货,仓库里却从没有人取用。删掉进口记录,账面才和实物一致。
grep autogroup kernel/sched/fair.c
==================================
[hit] #include "autogroup.h" <-- only match
[ ] no function / macro / var usage
|
v
remove the include line
|
v
boot test: Lima -> QEMU, x86_64 defconfig, 4 CPUs, busybox
|
v
pass -> post [PATCH] (2026-07-26)
|
v
5 weeks, no maintainer reply
|
v
"Gentle ping" (2026-08-31)
Highlight:风险与注意点
- grep 不是完备证明:宏拼接、条件编译(如
CONFIG_SCHED_AUTOGROUP/CONFIG_CGROUP_SCHED关闭或开启的分支)里可能存在只在特定 config 下才被引用的符号。稳妥做法是至少跑一次allmodconfig/allyesconfig编译,而不仅是 defconfig 启动。 - 传递性 include 的风险:即使 fair.c 自己不用 autogroup.h 的符号,也要确认它不是靠 autogroup.h 间接带进来的其他头文件(间接依赖)在编译。单一 defconfig 通过并不能排除其他架构/配置下的编译断裂。
- 优先级偏低:一行 cleanup 在 scheduler 队列中排序很后,5 周无回复属正常现象;作者的 gentle ping 是合适做法,但重发时更好的方式是带上"已在 X config 下编译通过"的补充证据。
- scope 要守住:这类 patch 只该删这一行,不要顺手重排 include 顺序或重命名 autogroup 相关代码,否则容易被要求拆分重发。
- 分类依据:标题与正文均无 RFC 征求意见语义,也无 fix/regression/crash/race 等修复语义,属于删除无用 include 的 cleanup 类 patch,因此归为
other。
一句话总结
一份典型的一行 cleanup patch:删除 kernel/sched/fair.c 中从未被使用的 #include "autogroup.h",作者用 grep 加 QEMU 启动测试做了双重验证,但发出 5 周后仍无 maintainer 回应,只能自行 gentle ping。