[PATCH 7.1 001/744] platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug
platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug。Claude 分析失败,当前使用规则 fallback:该讨论被归为 rfc,共 768 封邮件。
北京时间全部历史数据
最近同步:2026/08/28 20:01
platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug。Claude 分析失败,当前使用规则 fallback:该讨论被归为 rfc,共 768 封邮件。
platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug。Claude 分析失败,当前使用规则 fallback:该讨论被归为 rfc,共 689 封邮件。
补丁修复 migrate_llc_task 在 CPU stopper 异步 active balance 路径上语义丢失的问题:在 struct rq 上保存 active_balance_type,stopper 唤醒时回填 lb_env.migration_type,并抽出 migrate_llc_task_wrong_dst 辅助函数让 can_migrate_task 在 active 阶段也按 preferred_llc 拒绝候选。改动 2 个文件、+23/-3 行,是 Fixes: e4c9a4cb244a 引入时的遗漏修复。
本邮件是 Markus Reichelt 对 Greg Kroah-Hartman 发布的 7.1.6-rc1 stable review(744 patches)的 Tested-by 回复,确认在 x86_64 Xeon E5-1620 v2 + Slackware64-15.0 上编译通过,并在 x86_64 AMD Ryzen 5 7520U + Slackware64-current 上启动并跑自定义测试未观察到 regression。邮件不涉及具体代码改动,属于 stable review QA 反馈而非 scheduler 子系统讨论。
task_numa_migrate() 遍历候选 NUMA 节点时,distance 仍使用上一次迭代留下的 env.dst_nid,导致 task_weight 评分基于陈旧距离。补丁把 node_distance(env.src_nid, env.dst_nid) 改成 node_distance(env.src_nid, nid),让评分基于真实候选节点距离。thread 仅有 patch 与作者自我 ping,没有 maintainer review。
Andrea Righi 的 v2 patch 修改 find_new_ilb(),让 NOHZ idle load balancer 优先挑整核都空闲的 housekeeping CPU,避免在 NVIDIA Olympus/Vera 这种兄弟线程需要约 10 Ki cycles 恢复窗口的 SMT 上被反复短暂唤醒。找不到整核空闲时退回第一个 idle CPU,并在遍历时把部分忙核的兄弟从候选位图中剪掉。GEMM benchmark 性能从 ~6.2 TFLOP/s 提升到 ~9.4 TFLOP/s。
Andrea Righi 的 v2 补丁在 __sched_setscheduler() 中收紧 SCHED_FLAG_KEEP_PARAMS:持 rq 锁时若请求的 policy 与 p->policy 不同则直接返回 -EINVAL,并在该 flag 下跳过 sched_dl_overflow() 的 deadline 带宽记账与 DEQUEUE_CLASS 触发的 class 切换回调。这修复了「带宽已记账、class 回调已发出,但任务参数和 sched_class 其实没变」的不一致,附两条 Fixes 分别指向 uclamp 扩展与 switch 回调折叠两个提交。K Pratee...
Phineas Su 在 task_tick_numa 与 task_numa_work 各加一道 N_MEMORY 早返回,避免 memoryless 节点上空转造成 %sys 接近 78%。patch 仅 6 行新增,属轻量级 bugfix。Peter Zijlstra 提出反对意见,认为应让页面靠近运行节点而不是直接禁用 NUMA balancing,方案可能需要重新调整方向。
Luo Gengkun 的 v8 系列为每个 mm 维护 visited_cpus cpumask,把 task_cache_work 的扫描集合从整机/整 node 收缩到近期真正跑过该 mm 且仍在线的 CPU,并用 epoch_last_visit 加 llc_epoch_affinity_timeout 淘汰冷位,同时删除了 get_scan_cpumasks()。Redis 场景扫描 CPU 数从 384 降到 16,task_cache_work 开销从 0.81% 降到 0.02%,p99 延迟劣化从 -25.68% 收敛到 -1.14%。Reviewer 主要质疑 mm->sc...
Andrea Righi 提交 2 patch 修复 SCHED_FLAG_KEEP_PARAMS 模式下 __sched_setscheduler() 仍会触发 class transition 回调与 deadline 带宽记账两处副作用。Peter Zijlstra 进一步主张在 sched_setattr() syscall 入口就拒绝 KEEP_PARAMS 与策略变更的组合,返回 -EINVAL,从源头消除矛盾。讨论还涉及 SCHED_FLAG_KEEP_POLICY 的语义边界与历史 Fixes commit 的影响。