[PATCH] sched/hrtick: Name the minimum slice and derive the rearm slack
本 patch 把 hrtick 子系统中硬编码的 10000ns floor 与 5000ns rearm 阈值抽成两个命名宏,并显式把余量定义为最小切片的一半,仅提升可读性、不改变行为。作者本人也提出疑问:5us 阈值当年是否刻意作为 10us 的一半引入,等维护者澄清历史语义后再决定是否合入。
北京时间 2026-06-11 至 2026-09-08
最近同步:2026/09/07 21:14
本 patch 把 hrtick 子系统中硬编码的 10000ns floor 与 5000ns rearm 阈值抽成两个命名宏,并显式把余量定义为最小切片的一半,仅提升可读性、不改变行为。作者本人也提出疑问:5us 阈值当年是否刻意作为 10us 的一半引入,等维护者澄清历史语义后再决定是否合入。
本系列补丁为 cache-aware scheduling 引入 visited_cpus cpumask,让 task_cache_work() 只扫描最近真正访问过的 CPU,把多 NUMA 系统中的扫描 CPU 数从 384 降到 16 左右,Redis p99 延迟下降约 25%。Chen Yu C 在 review 中进一步指出单线程进程 visited_cpus 位累积以及跨 NUMA 抖动两个潜在风险,作者倾向于不加 gate。
该补丁在 PSI 中新增 cpu_prio 资源,只统计静态优先级不高于阈值的任务等待 CPU 的时长,以隔离延迟敏感负载的争用信号。维护者 Peter Zijlstra 直接回 Yeah, I think not. 拒绝,Michal Koutny 进一步指出把目标任务放进独立 cgroup 后读取 cpu.pressure 已经能做到同样效果,因此没有继续迭代。
Xin Zhao 提交的 10-patch 系列引入新的 SCHED_FEAT 开关 LB_PROMOTE,针对嵌入式平台(CONFIG_HZ_250)上 CFS 任务出现的不合理 CPU idle(>2.5ms 甚至 >4ms)问题,从 wake-up CPU 选择、newly idle 兜底、CFS 被 RT 抢占迁移三个场景主动出击。配套包含 rd overload 误清零、active_balance 清零时机、active_load_balance_cpu_stop 通用化等前置修复。默认关闭,开启后以 sys% 上升换取 ≤4ms 的调度延迟保证。
Ziyang Men 提交一个 2 patch 系列,为 cpu cgroup 暴露三个 BPF kfunc:bpf_cpu_cgroup_flush_stats、bpf_cpu_cgroup_cputime、bpf_cpu_cgroup_throttled_self,沿用 mm/bpf_memcontrol.c 的 memcg 设计思路。cputime 内部用一次 __css_rstat_lock + cputime_adjust 算齐全部基础 CPU 时间,节流总和由内核通过去除 static 的 throttled_time_self() 提供。配套 selftests/bpf 验证 B...