日期范围
134
全部讨论数
Bugfix重要分析 success作者:Tejun Heo2026/07/22 16:3510 封邮件

[PATCHSET v2 sched_ext/for-7.3] sched_ext: Sub-scheduler and cid fixes

本系列修复 sched_ext 子调度器层级下 runnable stall 归咎错误和 bypass 期间无效 CPU 选择,并将 cid 映射表从原地填充改为私有构建+RCU 发布,消除 BPF kfunc 竞态读取未初始化或撕裂数据的风险。Patch 4 经 v1→v2→v3 三版迭代,最终已合入 for-7.3。

lore
其它重要分析 success作者:Andrea Righi2026/07/21 13:1533 封邮件

[PATCHSET v7 sched_ext/for-7.3] sched: Make proxy execution compatible with sched_ext

Andrea Righi 发布 v7 patchset,引入 SCX_OPS_ENQ_BLOCKED 让 BPF 调度器接管 mutex-blocked donor 的 admission,统一 rq->donor(调度上下文)与 rq->curr(执行上下文)口径,并修掉 NOHZ bandwidth 漏判、consume_remote_task TOCTOU 竞争、running/stopping 配对三处回归。Tejun 要求 TOCTOU 修复合围在 proxy-exec 条件内;John Stultz 提出 scx_pair 走 wakeup 路径仍会触发 WARN_ON 与 scx...

lore
Bugfix重要分析 success作者:Tejun Heo2026/07/20 17:416 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Sub-scheduler and cid fixes

Tejun Heo 提交三个 sched_ext bugfix:修正 bypass 子调度器 stall 归责从任务 owner 改为 DSQ owner;bypass 下跳过无效的默认 CPU 选择直接返回 prev_cpu;防护 cid kfunc 在首次 enable 竞态窗口的 NULL 表解引用,返回 -EINVAL 或全负 topo。涉及 ext.c、cid.c、cid.h,+42/−12。

lore
Bugfix重要分析 success作者:Tejun Heo2026/07/20 15:4314 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Cgroup migration and op delivery for sub-schedulers

cgroup 迁移跨子调度器边界时任务不 re-home,导致 use-after-free 和错误调度。本系列新增 cgroup task migration notifier 实现三阶段 re-home(init → commit → cancel),并将 cgroup op 按 task_group topology 投递到对应 sched 而非固定 root。子调度器 enable/disable 时 cgroup 权属双向交接,失败时沿链向上退回至 root。

lore
其它分析 success作者:Tejun Heo2026/07/20 15:375 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Rename the cid-form cgroup ops to cpuctl_*

sched_ext cid 形式中 cgroup_*() ops 实际操作的是 cpu controller 而非 cgroup2 层级,趁 ABI 尚可变更将其重命名为 cpuctl_*。同时拆出 SCX_OPS_CID_OPEN 宏,使 cid-form skeleton 不再依赖 cpu-form 成员名的 compat 清零路径。已由 maintainer 应用到 for-7.3 分支。

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

[PATCHSET sched_ext/for-7.2-fixes] sched_ext: Assorted sub-scheduler and cgroup fixes

Tejun Heo 提交四项 sched_ext 子调度器/cgroup bugfix:禁止非 enable 路径设 disallow、修复 cgroup 三方锁死锁(v6.18+ stable)、跳过未链接子调度器的 teardown、门控非 ext class 任务 enable。Andrea Righi 测试中发现另一个 pre-existing use-after-free(cgroup 迁移不更新 p->scx.sched),Tejun 确认已有修复系列在准备中。本系列已获 Reviewed-by 并合入 for-7.2-fixes。

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/17 14:0418 封邮件

[PATCHSET v6 sched_ext/for-7.3] sched: Make proxy execution compatible with sched_ext

Andrea Righi 的 v6 共 11 个 patch,目标是拆掉 CONFIG_SCHED_PROXY_EXEC 与 CONFIG_SCHED_CLASS_EXT 的 Kconfig 互斥。核心做法是把 sched_ext 中所有策略与记账从 rq->curr 改为 rq->donor(donor 提供调度上下文,curr 只是执行上下文),并新增 SCX_OPS_ENQ_BLOCKED 让 BPF 调度器显式接管 blocked donor 的准入与排序。附带修复 NOHZ CFS bandwidth 检查看错任务(带 Fixes 标签)、ops.running/stopping 不...

lore
Bugfix重要分析 success作者:Zhimin Feng2026/07/16 19:293 封邮件

[PATCH sched_ext] sched/ext: Keep tick enabled for finite-slice tasks

该补丁修复 nohz_full CPU 上有限时间片 SCX 任务可能错误停掉 scheduler tick 的问题。根因是 set_next_task_scx() 运行时 rq->curr 仍可能指向旧任务,导致旧的 tick dependency 更新路径做出错误判断。新逻辑直接根据即将运行的任务设置 TICK_DEP_BIT_SCHED,同时保留无限时间片任务的 tickless 能力。

lore
Bugfix重要分析 success作者:Tejun Heo2026/07/16 08:006 封邮件

[PATCHSET v2 sched_ext/for-7.3] sched_ext: Sub-scheduler follow-ups

Patch 1 将 sub-scheduler 卸载时 ecaps 同步的无界 msleep 等待改为直接从 llist 摘除节点,消除潜在 stall。Patches 2-3 是前置重构(拆分 inlines.h、CONFIG 门控 sub_dispatch_prev)。Patch 4 引入 scx_has_subs static key,让无子调度器的常见场景跳过热路径中的 sub-sched 书簿开销。全部已合入 for-7.3。

lore
Bugfix重要分析 success作者:Tejun Heo2026/07/16 01:457 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Sub-scheduler follow-ups

该系列修复 sched_ext 子调度器销毁时可能因等待未来 balance 而无限停滞的问题,改为在 rq lock 下直接移除排队的 ecaps 同步节点。同时引入 scx_has_subs static key,使没有子调度器的常见系统跳过层级能力、同步和 idle 通知 bookkeeping。自动化审查指出 Patch 2 移动函数后可能形成 internal.h 与 cid.h 的循环依赖,仍需解决或通过构建验证。

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