[PATCH] sched_ext: repair kernel-doc comments
补丁修复 kernel/sched/ext/ext.c 中 6 处 kernel-doc 注释缺陷:为 finish_dispatch、scx_rcu_cpu_stall、scx_hardlockup 补齐缺失参数描述,并将 3 个版本化 BPF kfunc 的注释函数名从公开别名改为带 ___v2 后缀的 C 定义名,消除构建警告。Tejun Heo 已合入 sched_ext/for-7.3。
北京时间全部历史数据
最近同步:2026/08/28 15:52
补丁修复 kernel/sched/ext/ext.c 中 6 处 kernel-doc 注释缺陷:为 finish_dispatch、scx_rcu_cpu_stall、scx_hardlockup 补齐缺失参数描述,并将 3 个版本化 BPF kfunc 的注释函数名从公开别名改为带 ___v2 后缀的 C 定义名,消除构建警告。Tejun Heo 已合入 sched_ext/for-7.3。
当睡眠任务的 CPU affinity 在睡眠期间被修改后,task_cpu(p) 可能指向已不在 cpus_ptr 中的 CPU,导致 NUMA node 选定后找不到合法 CPU,sched_ext 框架报 "invalid CPU -16" 并使调度器异常退出。补丁在 numa_select_cpu() 中检测 cpumask 不一致时回退 prev_cpu 兜底,Tejun Heo 已 apply 到 for-7.2-fixes。
PATCHSET v8 用 12 个补丁让 CONFIG_SCHED_PROXY_EXEC 与 CONFIG_SCHED_CLASS_EXT 不再互斥,方法是把 rq->donor 与 rq->curr 拆分、由 BPF 通过 SCX_OPS_ENQ_BLOCKED 显式接收 blocked donor,并修复了 set_task_cpu 假告警、consume_remote_task 迁移竞态、NOHZ 带宽核算错、running/stopping 不配对等副作用。John Stultz 已 ack 多处,Tejun Heo 提出用 class callback 替换直接调用、把 GDSQ_...
scx_sub_enable_workfn() 中嵌套深度检查和 cgroup online 检查两条错误路径跳到 err_disable 时未设置 ret,导致 fallback 日志打印 errno=0。补丁分别设置 -EINVAL 和 -ENODEV 使 fallback 报告真实错误码。当前因 scx_error 的 first-error-wins 机制而无害,但 fallback 机制本身是坏的,需要修复。
本系列修复 sched_ext 子调度器层级下 runnable stall 归咎错误和 bypass 期间无效 CPU 选择,并将 cid 映射表从原地填充改为私有构建+RCU 发布,消除 BPF kfunc 竞态读取未初始化或撕裂数据的风险。Patch 4 经 v1→v2→v3 三版迭代,最终已合入 for-7.3。