日期范围
113
全部讨论数
Bugfix重要分析 success作者:Tejun Heo2026/08/16 10:136 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Update core-sched task ordering for scheduler hierarchies

Tejun Heo 推送 4-patch PATCHSET,修掉 scx_prio_less() 反向调用 ops.core_sched_before()、core_sched_at 两套时间戳规则不兼容、跨 sub-scheduler 没有调度者仲裁等三处 core-sched 优先级排序 bug,并删除一段永远不会触发的 SCX_DEQ_CORE_SCHED_EXEC 死代码。补丁已在作者自己的回复中 Applied 到 sched_ext/for-7.3,目标是在 7.3 merge window 前把 sub-scheduler 的核心坑补齐。

lore
其它分析 success作者:Tejun Heo2026/08/16 08:112 封邮件

[PATCH sched_ext/for-7.3] sched_ext: Move the config-off sub-cap kfunc stubs into sub.c

Tejun Heo 把 !CONFIG_EXT_SUB_SCHED 下 scx_bpf_sub_grant/revoke/caps/kill_bstr 四个 kfunc 的 -EOPNOTSUPP 桩从 ext.c 整体搬到 sub.c 的 #else 分支,使真实实现与桩集中在一个文件;纯代码搬迁,无功能改动,已 Applied 到 sched_ext/for-7.3。属于代码组织类 cleanup 改动,不影响调度行为,也不影响 BTF kfunc 暴露集合。

lore
Bugfix分析 success作者:Tejun Heo2026/08/15 20:333 封邮件

[PATCH sched_ext/for-7.3] sched_ext: Make SCHED_CLASS_EXT select GENERIC_ALLOCATOR

kernel/sched/ext/arena.c 使用 gen_pool_* 接口,但 SCHED_CLASS_EXT 缺少 GENERIC_ALLOCATOR 的 select。当配置里无其他项选中 GENERIC_ALLOCATOR 时会出现 undefined reference。补丁在 kernel/Kconfig.preempt 增加一行 select GENERIC_ALLOCATOR,修复链接错误,已被 Tejun Heo 立刻合入 sched_ext/for-7.3。

lore
Bugfix重要分析 success作者:Tao Cui2026/08/15 19:566 封邮件

[PATCH] sched_ext/scx_flatcg: expire cached hweights on weight changes

scx_flatcg 的 fcg_cgroup_set_weight() 写完 cgc->weight 和 child_weight_sum 后没推进 hweight_gen,导致持续忙碌的 cgroup 内 cpu.weight 改动对调度不可见。补丁在解锁后原子自增 hweight_gen,使 cgrp_refresh_hweight() 下次按新权重重算 hweight。Tejun 已拣入 sched_ext/for-7.3,并顺手指出了 fcg_dispatch() true-up 的另一处 bug,待后续修复。

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

[PATCHSET sched_ext/for-7.3] sched_ext: Dispatch path follow-ups

Tejun Heo 提交了 3 个补丁清理 4c95380701f5 引入的 dispatch 路径改动。0001 在 put_prev_task_scx() 入口拒绝跨 CPU 执行 kick_sync_wait_bal_cb,修复 dispatch drop rq lock 窗口内 lock 持有者 flush 回调到外 CPU 导致潜在死锁的回归。0002 删除 verdict 以返回值传递后已过时的 SCX_DSP_PREV 降级兜底,0003 把 balance_one()/SCX_RQ_IN_BALANCE 改名对齐到 dispatch 语义。该系列已被 maintainer 直接...

lore
Bugfix分析 success作者:Tejun Heo2026/08/15 18:038 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Misc fixes

Tejun Heo 在 sched_ext/for-7.3 分支上合并两个无关小补丁:一是删除 scx_root_disable() 中无锁的 scx_rq_clock_invalidate(),避免与持锁 flags 更新 race 同时去除冗余失效;二是让 scx_bpf_events() 读取调用者 BPF 程序所属 scheduler 的事件计数器,使 sub-scheduler 能正确观测自身。

lore
Bugfix重要分析 success作者:Tao Cui2026/08/15 17:104 封邮件

[PATCH] sched_ext/scx_flatcg: Fix cvtime true-up on slice expiry

Tao Cui 修复 scx_flatcg 在切片到期或 DSQ 空时 true-up cgroup cvtime 的计算 bug:原表达式 (cur_at + slice - now) 符号反,且 CNS_EXPIRE 路径下 u64 减法下溢、BPF 无符号除法丢失补码符号位,导致每次过期向 cvtime_delta 加接近 2^64/hweight 的垃圾值。新代码先算 s64 delta、按正负分流到 fetch_and_add / fetch_and_sub,被除数保正以适配 BPF 无符号除法。Sashiko 提示 cgv_node_less() 的 cvtime 回卷优先级反转属...

lore
Bugfix重要分析 success作者:Tao Cui2026/08/15 13:494 封邮件

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

这个 PATCH 修复 sched_ext 中 process_deferred_reenq_users 在 DSQ 已被 destroy_dsq 销毁后仍触发 BUG_ON 的崩溃。v2 把检查从 builtin-flag 改为只跳过 SCX_DSQ_INVALID,并在 Tejun 应用时加 READ_ONCE 关闭 TOCTOU 窗口。Sashiko 还提示 dsq 指针本身的 UAF 风险尚需继续跟进。该 patch 已合入 sched_ext/for-7.3 并会回灌 stable v7.1+。

lore
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
每页
上一页4 / 12下一页