[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-06-11 至 2026-09-08
最近同步:2026/09/08 11:05
补丁修复 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 机制本身是坏的,需要修复。
将 scx_pair 的 ops.cpu_acquire/release() 废弃回调替换为 tp_btf/sched_switch tracepoint 边沿检测,用 p->prio 判断高优先级抢占,消除加载时的废弃警告。idle→高优先级直跳不算 release,sched_setscheduler() 的盲区与旧回调一致。已由 Tejun Heo 合入 sched_ext/for-7.3。