[PATCH] sched/hrtick: Name the minimum slice and derive the rearm slack
本 patch 把 hrtick 子系统中硬编码的 10000ns floor 与 5000ns rearm 阈值抽成两个命名宏,并显式把余量定义为最小切片的一半,仅提升可读性、不改变行为。作者本人也提出疑问:5us 阈值当年是否刻意作为 10us 的一半引入,等维护者澄清历史语义后再决定是否合入。
北京时间 2026-08-10 至 2026-09-08
最近同步:2026/09/08 14:24
本 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。
Vlastimil Babka 发布5 patch RFC,把 kfree_nolock() 从只能释放 kmalloc_nolock() 对象扩展为可释放任意 kmalloc() 对象(含 kfence、kmemleak 注册对象、large_kmalloc),必要时通过 irq_work 延迟释放。调度器据此把 set_cpus_allowed_force() 中的 kfree_rcu() 替换为 kfree_nolock(),避免 RCU grace period 延迟。Hao Li 给出 Reviewed-by;Catalin Marinas 对 kmemleak 扫描期间 defer...
Eric Kim 的 v3 patch 修复 update_task_scan_period() 在 period==0 分支提前 return 导致 numa_faults_locality 未被清零的 bug。原代码会让上一窗口的旧 locality 反复被计入下一个窗口,触发 numa_scan_period 持续翻倍直至 numa_scan_period_max,把 task 永久冻结在错误 NUMA 节点。修复方法是把 return 改为 goto out,强制所有退出路径都走尾部 memset cleanup。v2 已按 Peter Zijlstra 建议复用 out 标签,v3 ...
该补丁在 PSI 中新增 cpu_prio 资源,只统计静态优先级不高于阈值的任务等待 CPU 的时长,以隔离延迟敏感负载的争用信号。维护者 Peter Zijlstra 直接回 Yeah, I think not. 拒绝,Michal Koutny 进一步指出把目标任务放进独立 cgroup 后读取 cpu.pressure 已经能做到同样效果,因此没有继续迭代。