日期范围
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
其它重要分析 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
其它分析 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
其它重要分析 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
其它重要分析 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
其它分析 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
其它重要分析 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
其它重要分析 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
每页
上一页1 / 1下一页