日期范围
113
全部讨论数
其它重要分析 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
Bugfix重要分析 success作者:Tejun Heo2026/07/15 22:5314 封邮件

[PATCHSET v2] sched/psi: Fix psimon fork deadlock and rtpoll_timer UAF

Tejun Heo 的 v2 系列把 psimon kthread 的 fork 移出 cgroup_mutex,解决 sched_ext enable 与 pressure_write 的死锁;patch 2 在 psi_cgroup_free() 用 timer_shutdown_sync() 关停 rtpoll_timer,根治调度热路径重 arm 造成的 UAF。Hannes、Suren 已 review,Matt Fleming 测试通过。Tejun 最终合入 cgroup/for-7.2-fixes 并 Cc stable。

lore
Bugfix分析 success作者:zhidao su (Xiaomi)2026/07/15 07:564 封邮件

[PATCH] sched_ext: Validate cid override before updating tables

本 patch 将 scx_bpf_cid_override() 的验证与写入拆为两遍循环,避免验证失败中途导致查找表处于半更新状态。但拆分引入了 TOCTOU 竞态风险,且 Tejun Heo 指出 for-7.3 已有含 kmemdup() 的更完善实现,本 patch 无需 respin。

lore
Bugfix分析 success作者:luoliang2026/07/15 06:092 封邮件

[PATCH] tools/sched_ext: scx_qmap: Fix stale API name in comment

v6.13 将 scx_bpf_dispatch[_vtime]_from_dsq 重命名为 scx_bpf_dsq_move[_vtime],但 scx_qmap 中一处注释仍用旧名,代码已用新名。本 patch 将注释同步更新,消除文档与代码不一致,已被 Tejun Heo 合入 sched_ext/for-7.3。

lore
其它重要分析 success作者:Tejun Heo2026/07/14 16:2743 封邮件

[PATCHSET v5 sched_ext/for-7.3] sched_ext: Capability-based CPU delegation for sub-schedulers

本补丁系列为 sched_ext 子调度器引入基于 shard 级 capability 的 CPU 委托机制,使父调度器能通过 grant/revoke 精细控制子调度器的 CPU 访问权限。核心设计是委托为状态而非调用——capability 以 per-shard cmask 存储,热路径通过 per-cpu effective caps 单次读取判断。系列还覆盖 kick、抢占、idle 报告等路径的 cap 执行和拒绝机制,以及驱逐不良子调度器的 kill kfunc。

lore
Bugfix重要分析 success作者:Tejun Heo2026/07/14 07:162 封邮件

[GIT PULL] sched_ext: Fixes for v7.2-rc3

Tejun Heo 向 Linus 提交 sched_ext v7.2-rc3 集中 bugfix pull,涵盖子调度器生命周期 use-after-free、dispatch 路径锁竞态、回调与任务状态残留、nohz_full tick 缺失及杂项修复。pr-tracker-bot 确认已合入 torvalds/linux。

lore
RFC重要分析 success作者:Tejun Heo2026/07/14 05:4518 封邮件

[PATCHSET SLOP RFC 0/6] bpf: make arena pointers first-class kfunc and struct_ops arguments

Tejun Heo 提出 RFC 让 BPF arena 指针通过 __arena 后缀在 kfunc 和 struct_ops 边界自动翻译地址,消除手工偏移/cast 重复代码。kfunc 方向由 verifier fixup 注入 rebasing 指令,struct_ops 方向由 entry prologue 注入反向 rebasing,NULL 保留。v2 新增了 __arena 参数禁止 tail call 的限制,并修正注释风格。

lore
Bugfix分析 success作者:luoliang2026/07/14 02:353 封邮件

[PATCH] tools/sched_ext: scx_flatcg: Fix uninitialized stats on allocation failure

本 patch 修复了 commit cabd76bbc036 在 scx_flatcg 中引入的回归:fcg_read_stats() 把 memset(stats,0) 放在 calloc() 失败检查之后,导致 calloc 失败时 stats 永远不会被写入,调用方读到未初始化的栈内存,造成 UB 并污染下一周期的 baseline。把 memset 上移到 calloc 检查之前即可保证 stats 始终被清零。Andrea Righi 给出评审,Tejun Heo 当天将其 pick 进 sched_ext/for-7.3。

lore
其它重要分析 success作者:Andrea Righi2026/07/14 00:4917 封邮件

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

Andrea Righi 发起 v5 系列,解开 SCHED_PROXY_EXEC 与 SCHED_CLASS_EXT 的 Kconfig 互斥,把 mutex-blocked donor 的处理交给 BPF 调度器(通过新标志 SCX_OPS_ENQ_BLOCKED)显式 opt-in。系列同时修齐 rq->curr/rq->donor 视图分离带来的 callback 配对、TOCTOU 与迁移策略问题,并附带 enq_blocked selftest 与 scx_qmap 的 -B 示例。sashiko-bot 标记了 PI de-boost 漏点、blocked donor 入队策略与...

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

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

Andrea Righi 提交 v4 补丁系列,让 proxy-exec 与 sched_ext 可以在同一内核中同时启用。通过引入 SCX_OPS_ENQ_BLOCKED 标志与 scx_bpf_task_proxy_cpu/cid() kfunc,BPF 调度器可以显式认领 blocked donor 并决定其派发时机与位置。系列同时修复了 ops.running/stopping 配对、consume_remote_task 的 TOCTOU race 以及 rq->curr/donor 拆分后的 DSQ 记账问题。John Stultz 在 review 中已发现 scx_pair 触...

lore
Bugfix重要分析 success作者:Matt Fleming2026/07/13 01:498 封邮件

[PATCH] sched_ext: Fix deadlock with PSI trigger creation

Matt Fleming 报告在 128-CPU AMD EPYC 上跑 scx_lavd 时,遇到 scx enable 与 cgroup PSI trigger 写并发触发的 ABBA 死锁,并提交 patch 调换 scx_fork_rwsem 与 cgroup_mutex 的获取顺序。sashiko-bot 指出同类锁序在 disable 路径同样存在;Tejun Heo 提出更彻底的修复,把 psimon kthread 的 fork 从 cgroup_mutex 中拆出,并在 v2 中合并 rtpoll_timer UAF 修复。讨论揭示了 a5b98009f16d 引入的锁依赖问...

lore
Bugfix重要分析 success作者:Matt Fleming2026/07/12 07:575 封邮件

[PATCH 6.18.y] rcu-tasks: Defer IRQ-disabled callback enqueue to irq_work

针对 6.18.y 的死锁修复:call_rcu_tasks_generic() 在 IRQs 关闭(持 rq->lock)时抢 cbs_gbl_lock,与 tasks-RCU wakeup 路径构成 ABBA 死锁。补丁将 IRQ-disabled 调用者改走无锁 llist 旁路,由 hard irq_work 稍后排干,fast path 不变。Paul McKenney 指出无法干净应用到 mainline,要求 forward-port,Matt 同意。

lore
每页
上一页5 / 6下一页