日期范围
134
全部讨论数
Bugfix重要分析 success作者:Tao Cui2026/08/15 11:313 封邮件

[PATCH] sched_ext: don't rehome a dead task in scx_cgroup_task_migrated

Tao Cui 提交一条 sched_ext 单文件补丁,希望在 scx_cgroup_task_migrated() 里跳过 SCX_TASK_DEAD 的任务,防止 scx_rehome_task() 误操作并泄漏 BPF per-task 资源。Tejun Heo 指出 MIGRATED 回调全程在 cgroup_attach_lock write-held 下执行,集合内任务根本无法进入 exit 路径,DEAD 只可能在没有 threadgroup rwsem 的 scx_task_iter 路径里出现,窗口不存在。作者在第 3 封回复中认错,patch 预计不会合并。讨论同时提醒:...

lore
Bugfix分析 success作者:Tao Cui2026/08/15 08:013 封邮件

[PATCH] sched_ext: don't BUG_ON a destroyed DSQ in process_deferred_reenq_users

scx_bpf_dsq_reenq() 排出的延迟 reenq 可能在运行前被 destroy_dsq() 销毁,导致 process_deferred_reenq_users() 走到 BUG_ON。v1 把 BUG_ON 换成 if (builtin) continue;Tejun 指出范围过宽,v2 改为只对 SCX_DSQ_INVALID 跳过,其它 builtin 状态仍 BUG_ON。

lore
Bugfix重要分析 success作者:Michal Blaszczyk2026/08/15 06:342 封邮件

[PATCH] selftests/sched_ext: Fix flaky ddsp failure tests on busy systems

本补丁修复 selftests/sched_ext 中 ddsp_bogus_dsq_fail 与 ddsp_vtimelocal_fail 在繁忙系统上跳过核心断言的 flaky 问题。原代码把非法 dispatch 包在 if (cpu >= 0) 里,一旦 scx_bpf_pick_idle_cpu() 返回负错误码就直接 return prev_cpu,导致测试空跑却报通过。补丁改为失败时兜底到 prev_cpu 并无条件执行非法 dispatch。Tejun Heo 已应用到 sched_ext/for-7.3,并把描述中的 "returns -1" 更正为 "returns a n...

lore
Bugfix重要分析 success作者:Cheng-Yang Chou2026/08/15 06:302 封邮件

[PATCH sched_ext/for-7.3] selftests/sched_ext: Make numa idle validation race-free

selftests/sched_ext/numa.bpf.c 之前断言被选中的 idle CPU 仍在 idle cpumask 中,但 pick_idle_cpu_node 与 pick_any_cpu_node 路径都存在窗口期,导致 race。补丁改用本地 CPU 的不变式:如果当前 CPU 跑在非 idle task context 中,则其自身不应仍在节点 idle cpumask 里,与 allowed_cpus 修复同思路,已被 Tejun Heo 合入 sched_ext/for-7.3。

lore
Bugfix重要分析 success作者:Tejun Heo2026/08/15 05:032 封邮件

[PATCH sched_ext/for-7.2-fixes] sched_ext: Fix scx_bpf_dsq_reenq___compat kfunc extern prototype

该 patch 修复 compat.bpf.h 中 scx_bpf_dsq_reenq___compat extern 多写了一个被 KF_IMPLICIT_ARGS 隐式省略的 bpf_prog_aux 参数,导致 libbpf 在所有内核上都无法 resolve 该 weak extern,__COMPAT_has_generic_reenq() 永远返回 false,scx_qmap 等通用 reenq 用户被误判为内核过旧。同时订正过时的 v6.20 注释为 v7.1,并加上 v7.1+ stable 后向移植标签。patch 本意发往 for-7.2-fixes,最终被 Tejun ...

lore
Bugfix重要分析 success作者:Qiurong Fang2026/08/15 03:502 封邮件

[PATCH] sched_ext: Fix scx_bpf_dsq_move_to_local___v2 compat detection

compat.bpf.h 中 scx_bpf_dsq_move_to_local___v2 extern 漏写 ___compat 后缀,导致 libbpf 解析 BTF 时把它当成无 flavor 的 scx_bpf_dsq_move_to_local,bpf_ksym_exists() 永远 false,宏静默回退到 ___v1 并丢掉 enq_flags(如 SCX_ENQ_IMMED)。补丁补齐 ___v2___compat 双后缀命名以匹配同文件其他版本化 extern。Tejun Heo 已将其合入 sched_ext/for-7.2-fixes,并标注 stable v7.1+ ...

lore
Bugfix重要分析 success作者:Qiurong Fang2026/08/15 03:212 封邮件

[PATCH] sched_ext: Fix exit_task leak on fork failure during enable

sched_ext 拆分 scx_ops_init_task 后,scx_fork 用 scx_init_task_enabled 做 gate,但 scx_cancel_fork 仍以 scx_enabled() 为门禁,导致 enable 窗口内 fork 失败的任务跑过 init_task 却永远拿不到 exit_task。本 patch 把 gate 对齐为 scx_init_task_enabled,修复 init/exit 配对并被 Cc 到 stable v6.12+。

lore
Bugfix重要分析 success作者:Tejun Heo2026/08/15 02:523 封邮件

[PATCH sched_ext/for-7.3] sched_ext: Set up ops.sub_ecaps_updated() dispatch context on the executing CPU

Tejun Heo 修复 scx_process_sync_ecaps() 在 core scheduling 下使用错误 dsp_ctx 的 bug。改动把 dispatch 上下文从目标 CPU 的 pcpu 改为执行 CPU 的 pcpu,与 scx_dispatch_sched() 对齐,确保 sub_ecaps_updated() 的 kfunc 在 sibling rq 路径下拿到正确的 rq 和 dispatch buffer。补丁已被 Applied 到 sched_ext/for-7.3 分支。

lore
其它重要分析 success作者:Tejun Heo2026/08/14 01:125 封邮件

[PATCHSET sched_ext/for-7.3-arena-args] sched_ext: Convert arena-pointer interfaces to __arena arguments

Tejun Heo 借助 bpf-next 刚落地的 kfunc/struct_ops __arena 参数支持,把 sched_ext cid-form 的 set_cmask、sub_caps_updated、scx_bpf_sub_grant/revoke/caps 与 scx_bpf_cid_override 等跨边界接口统一迁到 __arena 参数,删除手工 scx_kaddr_to_arena() rebase 与 BPF 端 (void *)(long) cast。3 个 patch,+148/-148 行,覆盖 11 个文件;同时把 cid_override 的 __sz 拆...

lore
讨论重要分析 success作者:David Carlier2026/08/13 12:591 封邮件

[BUG] sched_ext: ops.sub_ecaps_updated() dispatch context is set up on the wrong CPU under core scheduling

David Carlier 报告 sched_ext 在 core scheduling 下,scx_process_sync_ecaps() 把 dispatch context 错绑到目标 CPU 的 pcpu,导致执行 sibling CPU 上的 dsp_ctx.rq 为 NULL。该 bug 与 commit 3dd52416e44a 同类但被遗漏:若 ops.sub_ecaps_updated() 回调里调用 scx_bpf_dsq_move_to_local(),会走进 cpu_of(NULL) 触发 oops。作者建议改用 this_cpu_ptr(pcpu->sch->pcp...

lore
每页
上一页7 / 14下一页