[PATCH v2] sched/psi: use __ffs() to walk task-count bitmasks in psi_group_change()
把 psi_group_change() 中遍历 clear/set 4-bit 掩码的写法从线性扫到最高位改为 __ffs()+m&=m-1,按置位数而不是位宽工作。微基准在常见 PSI mask 分布上提速 47-63%,生成代码减少 67 字节;属性能/可读性双优的 patch 清理。
北京时间全部历史数据
最近同步:2026/08/28 20:01
把 psi_group_change() 中遍历 clear/set 4-bit 掩码的写法从线性扫到最高位改为 __ffs()+m&=m-1,按置位数而不是位宽工作。微基准在常见 PSI mask 分布上提速 47-63%,生成代码减少 67 字节;属性能/可读性双优的 patch 清理。
Mark Rutland 提出的 6 补丁系列在 v7.2-rc4 之上让 PREEMPT_DYNAMIC 直接依赖 ARCH_HAS_PREEMPT_LAZY,把因 7dadeaa6e851 而实际走不到的 NONE/VOLUNTARY 路径、HAVE_PREEMPT_DYNAMIC_{CALL,KEY} Kconfig 项以及 cond_resched / preempt_schedule / irqentry_exit_cond_resched 的动态跳板一次性删除,共削减 374 行;评审者 Jinjie Ruan 与 Shrikanth Hegde 给出逐封 review 与 acc...
Aaron Tomlin 在 v2 中向 kernel/sched/debug.c 新增 debugfs_cpu_init(),为每个 possible CPU 在 /sys/kernel/debug/sched/cpu/cpu<N>/debug 下创建独立 debug 文件,读取时通过 sched_debug_cpu_show() 复用 print_cpu() 输出该 CPU 的 runqueue 状态,offline CPU 返回 -ENODEV。v2 主要按 Peter Zijlstra 和 Zhan Xusheng 的反馈重写 commit message 动机,并补上 cpu_onl...
Aaron Tomlin v4 patch 给 security_task_setscheduler hook 增加 sched_attr 和 cpumask 两个 __nullable 参数,让 LSM 在 sched_setaffinity 路径上能看到目标 CPU 集合。同步更新 SELinux/Smack/commoncap/cpuset/timerslack/MIPS 等 10 个文件,但当前 LSM 都用 __always_unused 暂时忽略新参数,为后续基于空间隔离的策略铺路。
本 patch 删除 pick_task_fair() 中因 f666241e6bd5 重构而变成死代码的 throttled 变量与 task_throttle_setup_work() 调用,属于 cleanup 类改动,行为完全不变。回复者 K Prateek Nayak 指出 tip:sched/core 上 Peter Zijlstra 已经通过 85570f10a4c6(sched/eevdf: Move to a single runqueue)完成了同样的清理,作者需要 rebase 或撤回本 patch。