日期范围
134
全部讨论数
Bugfix重要分析 success作者:yaoyiqi (A)2026/08/21 16:065 封邮件

[scx_nest] bpf_timer_cancel() unusable from select_cpu()

scx_nest 在 nest_select_cpu() 的 migrate_primary 分支里调用 bpf_timer_cancel(),但 select_cpu() 处于 p->pi_lock + IRQ-disabled 上下文,无法同步取消定时器。补丁改为清 scheduled_compaction 标志、让 timer 回调自检作废,并把 stat_inc(CALLBACK_COMPACTED) 移到 stale 检测之后,避免悬挂到期被误计为 compact。

lore
讨论重要分析 success作者:Tejun Heo2026/08/21 02:342 封邮件

[GIT PULL] sched_ext: Changes for v7.3

Tejun Heo 发起的 v7.3 sched_ext 合并请求,主要完成分层子调度的入队路径支持,使父 BPF 调度器能够把 cgroup 子树连同 per-CPU 授权一并移交给嵌套子调度器。同时借机捎带 BPF kfunc/struct_ops 的 arena 参数支持以及一批 v7.2 漏掉的核心调度修复。合并需先 BPF 后 scheduler,结果已在 linux-next soak 数日,是 sched_ext 走向特性完整的里程碑。

lore
Bugfix分析 success作者:Tejun Heo2026/08/21 01:505 封邮件

[PATCH bpf-next] bpf: sched_ext: Mark ops argument container pointer fields as trusted

Tejun Heo 提交一封 26 行的 BPF verifier 补丁,把 sched_ext 四个 ops 参数结构体(scx_init_task_args / scx_cpu_release_args / scx_sub_attach_args / scx_sub_detach_args)里的指针字段加入 BTF_TYPE_SAFE_TRUSTED 白名单,使 sleepable 程序能直接使用 PTR_TRUSTED 指针,例如把 args->cgroup 直接传入 bpf_cgrp_storage_get()。CI bot 提示补 Fixes tag,BPF 维护者 Kumar Ka...

lore
其它分析 success作者:Tao Cui2026/08/20 03:492 封邮件

[PATCH v2] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent

Tao Cui 提交 v2 文档补丁,在 sched-ext.rst 新增 Scheduler-Dependent Knobs 小节,说明 sched_ext 只把 cpu.max / cpu.weight / cpu.idle 等 cgroup 旋钮透传给 BPF 调度器,未实现对应回调时静默忽略。维护者 Tejun Heo 回复指出当下大多数 BPF 调度器未实现 cpu.max、nr_throttled 计数也未在 SCX 中路由,建议文档改得更通用。

lore
Bugfix重要分析 success作者:Tejun Heo2026/08/20 02:3020 封邮件

[PATCHSET sched_ext/for-7.2-fixes] sched_ext: Fix core scheduling

Tejun 的 6 补丁系列修复 sched_ext 自 4c95380701f5 以来 core scheduling 支持被破坏的问题:fold 让 dispatch 从 pick 内丢 rq 锁,导致同核 sibling 选择互相覆写 core_pick 等状态引发 oops / hang。补丁新增 lock_drop_seq 计数、把"保留 prev"从 rq flag 改成 verdict 返回、修正 kfunc 中 this_rq 假设、让 core-sched pick 在丢锁时整段重试,并由 Peter Zijlstra 与 Andrea Righi 评审,已合入 sched_...

lore
RFC重要分析 success作者:Tao Cui2026/08/19 08:575 封邮件

[PATCH RFC] sched_ext: warn when cpu.max is set but the BPF scheduler doesn't implement bandwidth control

Tao Cui 提出在 BPF 调度器未实现 ops.cgroup_set_bandwidth 时,对有限 cpu.max 配额打印一次 pr_warn_once。实测 scx_simple 配置 cpu.max=50000 100000 时任务仍可吃满 CPU。Tejun Heo 引用 cpu.weight 的旧例反对运行时警告,建议通过文档说明各调度器实现的 cgroup 接口;Sashiko AI进一步指出该警告覆盖不到启动时已存在的 cgroup 配额。下一步取决于作者是否改为文档 patch,或扩展为 cgroup 能力位图机制。

lore
Bugfix分析 success作者:Changwoo Min2026/08/19 02:423 封邮件

[PATCH v2] sched_ext: allow ops.cgroup_set_bandwidth() to be sleepable

本补丁把 sched_ext 的 ops.cgroup_set_bandwidth() 加入 bpf_scx_check_member 的 sleepable 白名单,因其调用路径(tg_set_bandwidth → scx_group_set_bandwidth)本就持有可睡眠的 percpu_rwsem 读端。同时引入 DEFINE_SCX_COMPAT_MARKER 宏和首个 marker(scx_compat_marker_cgroup_set_bandwidth_may_sleep),通过 __used __retain 保证 BTF 留存,让 userspace loader 能...

lore
其它重要分析 success作者:Changwoo Min2026/08/18 22:164 封邮件

[PATCH] sched_ext: allow ops.cgroup_set_bandwidth() to be sleepable

本 v1 patch 把 sched_ext 的 ops.cgroup_set_bandwidth() 加入 BPF verifier 的 sleepable allow-list,使 BPF scheduler 能在运行时按需分配内存;新增一个 __used BTF marker 函数 scx_cgroup_set_bandwidth_may_sleep() 让 userspace 通过 BTF 探测该能力。Tejun Heo 指出仅 __used 在 CONFIG_LD_DEAD_CODE_DATA_ELIMINATION 下仍会被链接器 GC,需要补 __retain,并建议把未来会越来...

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

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

Andrea Righi 发布 v12 patch series,让 proxy execution 与 sched_ext 不再在 Kconfig 层互斥:把 donor/owner 拆为 rq->donor 与 rq->curr,新增 SCX_OPS_ENQ_BLOCKED 让 BPF 调度器显式接纳 mutex-blocked donor,并修复 NOHZ tick 检查、set_task_cpu 误报警、ops.running/stopping 配对以及跨 rq DSQ 迁移中的代理竞争。系列包含 17 个 patch、新增 enq_blocked kselftest 与 scx_qm...

lore
其它分析 success作者:Changwoo Min2026/08/18 03:002 封邮件

[PATCH v2] selftests/bpf: Remove duplicate copies of the arena spinlock qnodes

把 bpf_arena_spin_lock.h 中弱定义的 64KB qnodes 数组改为 extern 声明,并由 libarena/src/common.bpf.c 与 progs/arena_spin_lock.c 各提供一份唯一定义,避免 bpftool gen object 拼接 .addr_space.1 时把每个 TU 的弱副本都塞进最终对象。v2 仅 rebase,已被 Kumar Kartikeya Dwivedi 接受入库到 bpf-next。

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