日期范围
134
全部讨论数
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
Bugfix重要分析 success作者:Nicholas Dudar2026/07/12 07:3913 封邮件

[PATCH bpf-next v3 0/2] bpf: require an owned cpumask for bpf_cpumask_populate()

修复 BPF verifier 类型检查漏洞:bpf_cpumask_populate() 目标类型从 struct cpumask * 改成 struct bpf_cpumask *,阻止借用只读 cpumask 被当成可写目标。系列含 1 个 kernel 修复 patch 和 1 个 selftest patch。补丁已被 Kumar 合入 bpf-next,并获 Tejun Heo 的 Acked-by。

lore
Bugfix重要分析 success作者:Kuba Piecuch2026/07/11 00:483 封邮件

[PATCH sched_ext/for-7.3] sched_ext: skip ops.set_weight() for disabled tasks

这个单补丁修复 sched_ext 中 task 离开 SCX 后仍调用 ops.set_weight() 的回调顺序问题。核心改动是在 reweight_task_scx() 中跳过非 SCX_TASK_ENABLED 的 task,避免 BPF scheduler 已经在 ops.disable() 中忘记 task 后又收到权重更新。Tejun Heo 已将其应用到 sched_ext/for-7.2-fixes,并添加 Fixes 与 stable Cc,确认这是 v6.19+ 的回归修复。

lore
其它分析 success作者:Pat Somaru2026/07/11 00:364 封邮件

[PATCH v2] sched_ext: Add tracepoint for scheduler exit

Pat Somaru 给 sched_ext 的 scx_claim_exit() 新增一个 sched_ext_exit tracepoint,让 BPF 程序可动态观察调度器退出时的状态。v2 暴露 name/level/kind,但 Tejun 指出 sibling cgroup 同程序实例下会撞名;v3 补上 sub_cgroup_id 和 cgrp_path,并由 Tejun Applied 到 sched_ext/for-7.3。整体属于小特性新增,非 RFC/Bugfix。

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/10 06:494 封邮件

[PATCH sched_ext/for-7.3] sched_ext: Keep rq tracking accurate in the consume path

修复 consume_remote_task() 中 scx_locked_rq() 运行队列锁追踪变为 stale 的问题。旧代码先释放 this_rq 再锁 src_rq,导致 switch_rq_lock 的 guard 不匹配、追踪无法更新。新方案全程保持 this_rq 锁定,通过 switch_rq_lock() 连续切换,使追踪从头到尾准确。Tejun Heo 已合入 sched_ext/for-7.3。

lore
其它重要分析 success作者:Tejun Heo2026/07/10 06:2883 封邮件

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

把 sched_ext 子调度器的 CPU 访问从 dispatch-only 的程序化委托,扩展为覆盖 enqueue/occupancy/kick/preempt/idle 的全路径能力(cap)化委托。每 (sched, cid) 持 SCX_CAP_ENQ_IMMED/ENQ/PREEMPT 三档,按 LLC 对齐 shard 切分 cmask 状态并维护 per-cpu effective-cap 单读热路径,缺失 cap 走 reject DSQ + SCX_TASK_REENQ_CAP 反弹回 BPF 重排。整 40 patch 同时修掉 ops->priv 提前发布、pshar...

lore
Bugfix分析 success作者:luoliang2026/07/10 05:403 封邮件

[PATCH] selftests/sched_ext: Fix bpf_link leak on early return in prog_run

Liang Luo 发现 sched_ext selftest 的 prog_run 用例在断言失败时会跳过 bpf_link__destroy,导致 BPF 调度器不卸载、后续测试 attach 失败。改用统一 goto out 清理模式后,资源回收与返回路径解耦,Tejun 已合入 sched_ext/for-7.3。

lore
Bugfix分析 success作者:luoliang2026/07/10 05:403 封邮件

[PATCH] sched_ext: Fix typo in scx_bpf_dsq_insert() comment

Liang Luo 提交的 1 行注释修复 patch,把 kernel/sched/ext/ext.c 中 scx_bpf_dsq_insert() kfunc 注释里误写的参数名 @dsp_id 改回与函数签名一致的 @dsq_id。Andrea Righi 当日给出 Acked-by,Tejun Heo 当晚即将其合入 sched_ext/for-7.3 分支,无功能行为变更。

lore
其它重要分析 success作者:Tejun Heo2026/07/09 03:0916 封邮件

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

Tejun Heo 的 v3 patchset 把 sched_ext sub-scheduler 的能力模型从 dispatch 路径扩展到 enqueue/kick/occupancy/idle 全链路:引入 SCX_CAP_ENQ_IMMED/ENQ/PREEMPT 三档能力、按拓扑对齐的 per-shard 锁、per-cpu 有效能力快照(doorbell 在 balance() 顶部折叠),能力不足的任务走 reject DSQ 重入 enqueue;附带若干准备性修复(ops->priv 过早发布 UAF、cmask_subset 语义不一致、kobject sysfs 时序等)...

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/09 02:364 封邮件

[PATCHSET v3 sched_ext/for-7.2-fixes] sched_ext: Fix finite-slice ticks on nohz_full

Andrea Righi 提交 v3 修复了 sched_ext 在 nohz_full CPU 上 finite-slice 任务切换时 tick 依赖可能被错误禁用的问题。核心做法是在 set_next_task_scx() 中把 infinite/finite 路径拆开、对 finite 任务无条件声明 tick 依赖,并在 scx_can_stop_tick() 中忽略 nr_running 为 0 时的过期状态。配套新增的 kselftest 验证 infinite→finite 与 finite→finite 跨 idle 切换下 tick 投递正确,最终被 Tejun Heo 合...

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/09 02:362 封邮件

[PATCH v3 sched_ext/for-7.2-fixes] sched_ext: Preserve rq tracking across local DSQ dispatch

Andrea Righi 的 v3 patch 通过新增 switch_rq_lock() helper,把 sched_ext 中所有 rq 锁的切换与 scx_locked_rq() 的跟踪更新绑定为原子操作,避免嵌套 SCX_CALL_OP 路径上 update_locked_rq() 恢复一把已不持有的 rq 触发 lockdep 警告。该 patch 同时覆盖 move_remote_task_to_local_dsq、dispatch_to_local_dsq 和 scx_dsq_move 三处切锁点,被 Tejun Heo 接收进 sched_ext/for-7.2-fixes ...

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/08 15:593 封邮件

[PATCH v2 sched_ext/for-7.2-fixes] sched_ext: Preserve rq tracking across local DSQ dispatch

该线程讨论 sched_ext 在 local DSQ dispatch 和 dsq move 路径中切换 rq 锁时,scx_locked_rq() 可能仍指向旧 rq,从而在嵌套 dequeue 回调恢复 tracking 时触发 lockdep warning。Andrea 的 v2 通过切换期间清空并最终恢复 tracked rq 来修复,Tejun 建议改成围绕 unlock/lock pair 的 switch_rq_lock() helper,让 tracking 始终跟随真实持锁 rq。Andrea 接受建议,将发送 v3,并计划在 for-7.3 继续统一 consume p...

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/08 04:564 封邮件

[PATCHSET v2 sched_ext/for-7.2-fixes] sched_ext: Fix finite-slice ticks on nohz_full

v2 系列把 sched_ext 在 nohz_full CPU 上 stale tick 依赖问题兜底:finite-slice EXT 任务被选中时无条件重置 TICK_DEP_BIT_SCHED,并在 runqueue 上无 EXT 任务时忽略 outgoing slice 状态。同时新增 kselftest,覆盖 infinite→idle→finite 与 finite→idle→finite 两条迁移路径。Tejun Heo 给出 infinite/finite 直分两支的可读性改写建议,等待作者采纳。

lore
Bugfix重要分析 success作者:Andrea Righi2026/07/07 22:472 封邮件

[PATCH sched_ext/for-7.2-fixes] sched_ext: Preserve rq tracking across local DSQ dispatch

这是一枚 sched_ext/for-7.2-fixes bugfix 补丁,修复 dispatch_to_local_dsq() 在本地 DSQ 派发过程中切换 runqueue lock 后仍保留旧 scx_locked_rq 跟踪的问题。补丁在切锁前清空 tracked rq,并在重新拿回原 rq 锁后恢复,避免嵌套 dequeue 回调恢复一个实际上不再持锁的 rq 触发 lockdep。sashiko-bot 回复指出同一类 stale scx_locked_rq_state 的中等风险问题,未给出人工评审结论。

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