日期范围
28
其它讨论数
其它分析 success作者:Tianyi Chen2026/09/06 22:411 封邮件

[PATCH] selftests/sched_ext: Cover duplicate DSQ creation and ID reuse

Tianyi Chen 提交单封 PATCH,在 sched_ext 的 create_dsq selftest 中扩展 BPF 侧空 DSQ 生命周期循环:验证重复 create_dsq 返回 -EEXIST、原 DSQ 仍可访问、destroy 后 nr_queued 返回 -ENOENT、相同 ID 可复用,并在用户态校验 1024 次迭代全部完成。属于 selftest 增强(非 RFC、非 bugfix),按规则归类为 other。

lore
其它分析 success作者:Tianyi Chen2026/09/06 22:401 封邮件

[PATCH] selftests/sched_ext: Validate select_cpu_and mask constraints

本补丁把 sched_ext 自带的 allowed_cpus selftest 从“打印 BPF 程序返回的 CPU 号”升级为对 select_cpu_and 契约的硬断言。BPF 侧新增 custom_cpu 字段并在返回时校验 CPU 同时落在 mask 与 cpus_ptr 内;用户态覆盖空 mask、单点 mask、与亲性不交 mask 三档用例,并在跑完后恢复 runner 亲和性。单 patch 改动 2 个 selftest 文件,共 86 增 / 15 删,不动 kernel 侧实现。

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
其它重要分析 success作者:Ziyang Men2026/09/01 08:4613 封邮件

[PATCH v3 0/4] selftests: shared lib.bpf.mk for building BPF progs and skeletons

本系列把 selftests/bpf、selftests/sched_ext、selftests/hid 中重复的 libbpf/bpftool/vmlinux.h/skeleton 构建规则抽到共享片段 tools/testing/selftests/lib.bpf.mk,hid 与 sched_ext 的 Makefile 各从约 150 行缩到约 30 行,并新增 selftests/cgroup/test_memcg_stat_cross_cpu,用 BPF kfunc 真正校验 memcg flush 后跨 CPU 统计与文件读数一致,弥补了旧 bpf/cgroup_iter_mem...

lore
其它重要分析 success作者:Tao Cui2026/08/25 17:285 封邮件

[PATCH] sched_ext: Allow ops.cgroup_set_weight/idle() to be sleepable

Tao Cui 提议将 ops.cgroup_set_weight() 与 ops.cgroup_set_idle() 加入 sched_ext 的 sleepable allow-list,使 BPF 调度器可以按需分配 DSQ 等资源。补丁同时新增两个 SCX_COMPAT_MARKER 并更新注释。Sashiko AI 与 Andrea Righi 均指出并发 cgroup 写入存在 core / BPF 状态失序的 high severity 竞态,Andrea 暗示将先发 race fix,本补丁宜在 race 修复后再合入。

lore
其它重要分析 success作者:Tao Cui2026/08/25 01:283 封邮件

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

Tao Cui 在 v4 里给 sched-ext.rst 新增 Scheduler-Dependent Knobs 小节,说明 cpu.max、cpu.weight、cpu.idle 等 cgroup v2 CPU 控件在 sched_ext 下是否生效取决于加载的 BPF 调度器。Andrea Righi 提出措辞建议后作者重写描述,区分了 ops.cgroup_init() 与 ops.cgroup_set_*() 的不同职责,并指出 per-task nice(ops.set_weight())与 cgroup cpu.weight.nice 是两条独立路径。Tejun Heo 已将该...

lore
其它分析 success作者:Tao Cui2026/08/24 21:093 封邮件

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

Tao Cui 在 sched_ext 文档中新增一节 Scheduler-Dependent Knobs,明确 fair 在内核侧强制 cgroup v2 CPU 旋钮,而 sched_ext 只通过 ops.cgroup_set_*() 回调透传给装载的 BPF 调度器,是否生效取决于该调度器的实现。v3 据 Andrea Righi 在 v2 的评审删掉了具体调度器名单与 nr_throttled 示例,保留通用简洁描述,纯文档变更。

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
其它重要分析 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
其它分析 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
其它分析 success作者:Changwoo Min2026/08/18 02:056 封邮件

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

bpf_arena_spin_lock.h 把 64KB 的 qnodes 数组直接定义在头文件里,导致 libarena 链接的 10 个 TU 在 .addr_space.1 中各留一份副本;本 patch 把它改为 extern 声明,由 common.bpf.c 与 arena_spin_lock.c 各自提供一份定义,把 libarena.bpf.o 从 676KB 缩到 86KB、asan 版 skel 从 2.6MB 缩到 1.4MB。Daniel 因补丁无法干净应用要求 rebase,Emil 给了 Reviewed-by,作者承诺稍后发 v2。

lore
其它分析 success作者:Tejun Heo2026/08/16 08:112 封邮件

[PATCH sched_ext/for-7.3] sched_ext: Move the config-off sub-cap kfunc stubs into sub.c

Tejun Heo 把 !CONFIG_EXT_SUB_SCHED 下 scx_bpf_sub_grant/revoke/caps/kill_bstr 四个 kfunc 的 -EOPNOTSUPP 桩从 ext.c 整体搬到 sub.c 的 #else 分支,使真实实现与桩集中在一个文件;纯代码搬迁,无功能改动,已 Applied 到 sched_ext/for-7.3。属于代码组织类 cleanup 改动,不影响调度行为,也不影响 BTF kfunc 暴露集合。

lore
其它重要分析 success作者:Tejun Heo2026/08/14 01:125 封邮件

[PATCHSET sched_ext/for-7.3-arena-args] sched_ext: Convert arena-pointer interfaces to __arena arguments

Tejun Heo 借助 bpf-next 刚落地的 kfunc/struct_ops __arena 参数支持,把 sched_ext cid-form 的 set_cmask、sub_caps_updated、scx_bpf_sub_grant/revoke/caps 与 scx_bpf_cid_override 等跨边界接口统一迁到 __arena 参数,删除手工 scx_kaddr_to_arena() rebase 与 BPF 端 (void *)(long) cast。3 个 patch,+148/-148 行,覆盖 11 个文件;同时把 cid_override 的 __sz 拆...

lore
其它分析 success作者:Ziyang Men2026/08/12 15:0315 封邮件

[PATCH v2 0/4] selftests: shared lib.bpf.mk for building BPF progs and skeletons

Ziyang Men 提出的4 patch 系列把 selftests/{bpf,sched_ext,hid}/ 中重复的 libbpf+bpftool+vmlinux.h+skeleton 工具链抽到共享片段 tools/testing/selftests/lib.bpf.mk,并新增 selftests/cgroup/test_memcg_stat_cross_cpu 验证 memcg BPF kfunc 与 rstat flush 在跨 CPU 场景下的正确性。维护者主要在 EXTRA_CFLAGS/OPT_FLAGS 透传、cgroup 测试选址与 bot CI 上提出反馈,作者承诺 ...

lore
其它重要分析 success作者:Andrea Righi2026/08/11 00:0620 封邮件

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

v11 系列通过新增 SCX_OPS_ENQ_BLOCKED 与 SCX_ENQ_BLOCKED 让 BPF 调度器可选地接收被阻塞的 proxy donor,并把 sched_ext 的回调、kfunc 视角由 rq->curr 拆分为 rq->donor,从而解开 SCHED_PROXY_EXEC 与 SCHED_CLASS_EXT 的构建时互斥。同时给出 kselftest 与 scx_qmap -X 演示选项,并修复 NOHZ 带宽与 running/stopping 配对的若干边角问题。

lore
其它重要分析 success作者:Andrea Righi2026/08/06 17:0732 封邮件

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

Andrea Righi 提交的 v10 系列把 SCHED_PROXY_EXEC 与 SCHED_CLASS_EXT 由编译期互斥改为可同时开启。核心做法是引入 SCX_OPS_ENQ_BLOCKED capability,把 blocked donor 的入队决策交给 BPF 调度器,并在 rq->donor 与 rq->curr 之间严格区分调度上下文与执行上下文。Tejun Heo 关注代码移动与 PI 跨类切换等细节,sashiko-bot 指出 reject DSQ 锁路径与文档不一致。

lore
其它重要分析 success作者:Tejun Heo2026/08/03 03:5118 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Bandwidth-limited rescue execution for stranded tasks

本系列为 sched_ext 子调度器中因 CPU 亲和性与 cid 不匹配而搁浅的任务,新增内核侧的带宽受限救援执行机制。调度器在 insert 时标记 SCX_ENQ_RESCUE,内核将任务放入 rescue DSQ 以受限带宽运行,等待过久时升级为不可抢占的 protected execution。当救援队列持续过载时,逐出消耗救援资源最多的子调度器而非归咎于等待者。

lore
其它分析 success作者:Tejun Heo2026/07/26 04:415 封邮件

[PATCHSET sched_ext/for-7.3] sched_ext: Sparse annotation cleanups

为 sched_ext 中三类 __rcu 指针的裸读取添加合规标注:cgrp->scx_sched 通过 scx_cgroup_sched() 声明三锁保护,scx_root 通过 scx_root_protected_live/protected() 声明 live 不变式或锁排他,dsq->first_task 用 rcu_access_pointer() 做身份比较。全部无功能变更,已合入 for-7.3。

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

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

Andrea Righi 发布 PATCHSET v9,共 14 个补丁,移除 SCHED_PROXY_EXEC 与 SCHED_CLASS_EXT 的构建期互斥。在核心调度器侧把 rq->donor 与 rq->curr 拆开,新增 SCX_OPS_ENQ_BLOCKED 能力位让 BPF scheduler 显式选择是否接管 blocked donor,并同步修复 NOHZ 带宽检查、远端 DSQ 迁移竞态、ops.running/stopping 配对等问题。配套提供 enq_blocked selftest 和 scx_qmap -B 演示选项。

lore
其它分析 success作者:Cheng-Yang Chou2026/07/23 02:154 封邮件

[PATCH sched_ext/for-7.3] tools/sched_ext: scx_pair: Convert to sched_switch TP

将 scx_pair 的 ops.cpu_acquire/release() 废弃回调替换为 tp_btf/sched_switch tracepoint 边沿检测,用 p->prio 判断高优先级抢占,消除加载时的废弃警告。idle→高优先级直跳不算 release,sched_setscheduler() 的盲区与旧回调一致。已由 Tejun Heo 合入 sched_ext/for-7.3。

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