日期范围
74
全部讨论数
Bugfix重要分析 success作者:Wanwu Li2026/09/03 09:4613 封邮件

[PATCH] sched_ext: Reject NMI calls to lock-taking kfuncs

本系列把 in_nmi() 检查从 scx_bpf_kick_cpu() 推广到所有 NMI 可达、且会取 rq/dsq/pshard 锁的 sched_ext kfunc,通过新引入的 scx_kf_allowed_ctx() 宏在 NMI 中走无锁 scx_error() abort,避免 tracing BPF 程序把 any 分类 kfunc 变成整机 hard-lockup 的入口。v3 经三轮 review 后被 Tejun Heo 应用到 sched_ext/for-7.4。

lore
Bugfix分析 success作者:Tao Cui2026/09/03 01:483 封邮件

[PATCH v2] sched_ext: don't deliver duplicate ops.cgroup_set_idle() for same value

scx_group_set_idle() 原先每次写入 cpu.idle 都无条件调用 BPF 的 cgroup_set_idle 回调,违反 transition 语义,导致 BPF scheduler 误判重复事件。本补丁在该函数中加入 tg->scx.idle != idle 的短路条件,与已有的 scx_group_set_weight() 路径对称。v2 仅修复了 v1 Link: tag 缺失 @linux.dev 的问题;Tejun Heo 已合入 sched_ext/for-7.3-fixes,并把 sched_idle 改回 idle 以匹配当前分支。

lore
Bugfix分析 success作者:Michal Blaszczyk2026/09/02 16:074 封邮件

[PATCH] sched_ext: Use atomic cpumask_clear_cpu in scx_idle_test_and_clear_cpu()

Michal Blaszczyk 提交单行 patch,把 scx_idle_test_and_clear_cpu() 里的 __cpumask_clear_cpu 替换为原子版本,试图消除 idle_smts 共享 mask 上的并发 lost update。Sashiko 与维护者 Andrea Righi 均指出修复不完整,因为 cpumask_andnot / cpumask_or 仍是整字非原子 RMW,且原设计本就是有意为之的 best-effort。最终作者决定撤回该 patch,建议改为更系统的方案,例如 per-CPU mask 或加锁。

lore
其它分析 success作者:Qiurong Fang2026/09/02 14:577 封邮件

[PATCH] sched_ext: Skip per-CPU data allocation for built-in DSQs

Qiurong Fang 提出 sched_ext 补丁,在 scx_init_dsq() 与 exit_dsq() 中对 built-in DSQ 跳过 pcpu 分配,把原本 O(nr_cpu_ids²) 的死内存释放掉。Zhan Xusheng 在 review 中指出浪费是二次方级别并给出 Reviewed-by;Tejun Heo 建议把字段重命名为 pcpu_user。v2 完成重命名与文案修订后被合入 sched_ext/for-7.4。

lore
Bugfix分析 success作者:Tao Cui2026/09/02 14:425 封邮件

[PATCH v3 0/2] sched_ext: document and enforce vtime ordering constraints

v3 系列由两片组成:1/2 在 ext.c 注释中显式写出 dsq_vtime 必须落在 2^63 窗口内的 rolling-cursor 约束;2/2 把 scx_flatcg 的 cgv_node_less() 由裸 < 改为 time_before(),避免 cvtime 回卷后早回卷的 cgroup 抢到 rbtree 头部、其余节点被卡死。v3 相对 v1/v2 删掉了原 kernel priq 比较器改动并把 Fixes tag 校准到 a4103eacc2ab,Tejun 已收下合入 sched_ext/for-7.4。

lore
讨论分析 success作者:Qiurong Fang2026/09/02 14:201 封邮件

Re: [PATCH] sched_ext: Delete sub-scheduler kobjects before releasing scx_enable_mutex

Qiurong Fang 就 sched_ext 子调度器 kobject 释放顺序的 PATCH 回复 maintainer Tejun,确认这是预期行为,并正式撤回该 PATCH。整条线索仅一封回复邮件,不携带任何代码改动。邮件仅体现讨论闭环,未在代码层面引入新的行为或修复。

lore
Bugfix重要分析 success作者:Qiurong Fang2026/09/02 14:025 封邮件

[PATCH] sched_ext: Delete sub-scheduler kobjects before releasing scx_enable_mutex

sched_ext sub-scheduler 在 disable 时先释放 scx_enable_mutex 再删 sysfs kobject,导致并发 enable 在同一 cgroup 上 kobject_add 撞 -EEXIST,把一个健康的调度器误杀。补丁把 kobject_del 移到 mutex_unlock 之前,与 root 路径对齐。

lore
Bugfix重要分析 success作者:Tao Cui2026/09/02 09:217 封邮件

[PATCH v2 0/2] sched_ext: document and enforce vtime ordering constraints

本系列把 sched_ext 中 dsq_vtime 排序所依赖的 u64 half-range 约束显式写进 scx_bpf_dsq_insert_vtime() 的文档,并把示例调度器 scx_flatcg 的 rbtree 比较器 cgv_node_less() 从裸 u64 '<' 改成 (s64)(a-b)<0 的循环比较,避免 cvtime 绕回时破坏严格弱序。Tejun 复审指出文档措辞应为 'less than 2^63 apart',wrap 实际比 commit 描述发生得更早(每 CPU slice charge 累加),lag 与 lead 都需受限,Fixes 标签应...

lore
Bugfix分析 success作者:Tao Cui2026/09/01 20:354 封邮件

[PATCH] sched_ext: don't deliver duplicate ops.cgroup_set_idle() for same value

Tao Cui 发现 scx_group_set_idle() 不论 cpu.idle 是否真发生变化都向 BPF 调度器派发 cgroup_set_idle 回调,会让基于切换或累计计数的 BPF 调度器误把重复写入算成多次跃迁。补丁在派发条件中追加 tg->scx.sched_idle != idle 的守卫,对齐 scx_group_set_weight() 的现有跳过等值写入的做法。Sashiko AI 提示 sched_idle 字段可能不存在;Andrea Righi 确认其余内容 OK 并给出 Reviewed-by,同时指出 Link: 标签为空。

lore
Bugfix重要分析 success作者:Tao Cui2026/09/01 17:449 封邮件

[PATCH 1/2] sched_ext: fix vtime priority queue inversion on wide vtime spread

Tao Cui 提交 2 个补丁分别修复 sched_ext 内核 DSQ 优先队列的 spread 大时反转问题,以及 scx_flatcg cgroup 树在 cvtime 环绕瞬间的错位问题。两处采用相反修复,判定依据是 spread 不变量是否被维护。Tejun Heo 明确 dsq_vtime 按 BPF kfunc 文档是循环 cursor,作者本人随后在第 9 封反对自己的 Patch 1 方向,预计 v2 会撤回 Patch 1 并修正 Patch 2 的 Fixes tag。

lore
每页
上一页2 / 8下一页