[PATCH v2 0/2] sched: Enable preferred SMT siblings on NVIDIA Olympus
sched: Enable preferred SMT siblings on NVIDIA Olympus。Claude 分析失败,当前使用规则 fallback:该讨论被归为 bugfix,共 7 封邮件。
北京时间 2026-08-25 至 2026-09-07
最近同步:2026/09/07 18:31
sched: Enable preferred SMT siblings on NVIDIA Olympus。Claude 分析失败,当前使用规则 fallback:该讨论被归为 bugfix,共 7 封邮件。
Ye Liu 提交 8 patch v2 系列,新增 for_each_process_rculock、for_each_thread_rculock 与 for_each_process_thread_rculock 三个宏,将 scoped_guard(rcu) 与现有进程/线程迭代宏绑定,使 RCU 读锁自动按循环作用域加解锁;随后把 mm/oom_kill、mm/ksm、mm/memory-failure、kernel/、fs/、lib/ 与 security/landlock 共 17 个文件 21 处手工 rcu_read_lock/rcu_read_unlock 或 guard(...
syzbot 报出 IRQ 线程在 CPU 热插拔窗口内调 set_cpus_allowed_ptr,可能让任务落到 cpus_mask 之外的 CPU 并触发 affine_move_task 警告。Sebastian 提出两个备选方案:在 IRQ 侧加 cpus_read_lock,或在 migration_cpu_stop 中回填 cpus_mask。
补丁针对 d2d5c129d07e 在 cpufreq_update_pressure() 中以 cpuinfo.max_freq 作为 fallback 后,导致非 frequency-invariant 架构上 capacity 被扣减而 utilization 未同步缩放、产生 util > capacity 误判的问题。在 get_actual_cpu_capacity() 中用 arch_scale_freq_invariant() 守卫 cpufreq_get_pressure(cpu) 的合并,恢复对称缩放。讨论中作者承认首版解释错误,把根因改为 cpuinfo.max_freq...
sched: fix repeated word 'into' in comment。Claude 分析失败,当前使用规则 fallback:该讨论被归为 bugfix,共 1 封邮件。
本封是 Hemanth Selam 14-patch typo 系列的第 5 封,针对 scheduler 子系统 7 个文件各订正 1 处注释拼写错误,包括 atleast、compability、substract、faireness、actualy、avaialable、condtion 等,diff 显示 7 处插入与 7 处删除,纯注释改动,不影响运行时行为,由 checkpatch.pl 配合 scripts/spelling.txt 驱动。声明 Assisted-by: Cursor:claude-opus-5,未收到系列其它 13 封邮件。
sched, steal_governor: Introduce preferred CPUs and steal-driven vCPU backoff。Claude 分析失败,当前使用规则 fallback:该讨论被归为 rfc,共 17 封邮件。
Ye Liu 提交 8 个 patch 的 v1 系列,在 include/linux/sched/signal.h 中引入 for_each_process_rcu / for_each_thread_rcu / for_each_process_thread_rcu 三个基于 scoped_guard(rcu) 的宏,并把它们应用到 mm/、kernel/、fs/、lib/、security/ 共 17 个文件,清除大量手写 rcu_read_lock/unlock 样板。Michal Hocko、SJ Park、Miaohe Lin、Lorenzo Stoakes、Justin Sues...
上游清理 refactor 9650ce11f2e3 移除 preempt_dynamic_none/voluntary 两个 enum 后,未同步缩减 preempt_modes[] 数组,导致 preempt_model_str() 在 backtrace 中返回错位字符串,/sys/kernel/debug/sched/preempt 输出为空。Mark Rutland 用 +3/-9 行的最小补丁把数组和 sched_dynamic_show() 循环一起改回,并已被 tip-bot2 合入 sched/core,s390 上由 Mete Durlu 测试确认正确。
Bradley Morgan 的 5 patch 系列把 ivtv/encx24j600/sc16is7xx/cpufreq_schedutil 四个剩余的旧 kthread 用户迁到 kthread_create_worker* API,并删除 kthread_worker_fn() 中挂了十年的 worker->task = current 自赋值,仅留 WARN_ON 兜底。v2 已被 Jakub Kicinski 和 Greg KH 要求把 driver 改动拆成独立 series 分头发,并被 kernel test robot 抓到 ivtv-irq.c:1053 仍残留 &itv...
Hui Su 提交 2/2 系列 patch,修复 proxy execution 中 donor 是 RT/DL 时 task_tick_numa/task_tick_cache 不再被调用、导致 mm scan epoch 与 account_mm_sched 错位的回归。把这两个执行上下文 tick 从 task_tick_fair() 提到 sched_tick()/sched_tick_remote(),并按 rq->curr 是否 fair 触发。讨论中 Prateek、Tim Chen、Chen Yu 进一步指出 task_tick_core() 在 proxy 下 sum_ex...
scan_size_mb debugfs 节点被注册成 u32,写入 0 或 2^24 的倍数会让 task_scan_min() 和 task_nr_scan_windows() 把 0 当除数,触发内核除零 oops。补丁改用 debugfs_create_file 加自定义 write,按 NUMA_SCAN_SIZE_MB_MAX 校验范围,仿照已有的 sched_scaling_fops 把 sysctl 时代丢失的下界和上界都补回来。
本 RFC 把 RV 工具从只能管理内核内置 monitor 扩展为可加载 BPF monitor:通过 BPF struct_ops 把 monitor 接入 tracefs,用 ringbuf 回传 trace 事件,并扩展 rvgen 与 selftest 支持模板生成与端到端验证。共 20 个补丁、约 2770 行新增,已得到 sashiko AI 评审若干改进意见,并引发 Rostedt、Starovoitov、Glozar 等多轮 maintainer 讨论。
select_fallback_rq() 旧实现在多 NUMA 节点系统上会按 cpumask 编号顺序扫描,挑到的 fallback CPU 拓扑距离可能比实际更远。本 patch 改用 for_each_numa_hop_mask 按拓扑距离逐跳扩搜,并用 prev 记录已考察过的 CPU,避免重复扫描;最后再用 p->cpus_ptr \ prev 兜底,处理拓扑重建期间 hop mask 尚未就绪的窗口。
v4 系列把嵌套本地中断禁用改为基于 preempt_count 的引用计数,并为 Rust 增加 LocalInterruptDisabled 和 SpinLockIrq。系列同时调整 NMI 和 reschedule 位布局、增加 KUnit 测试及架构适配。patch 07 的 cleanup guard 迁移随后被 revert,后续又出现将 local_irq 操作迁入 Rust 的新提案。
Zhan Xusheng 在 fair.c 的 alb_break_llc() 中发现 nr_pref_llc_running 与 h_nr_runnable 一个数 queued、一个数 runnable,导致等式在 DELAY_DEQUEUE 下恒假,主动负载均衡丢失 LLC 亲和性保护。Tim Chen 与 Chen Yu 推动 patch 从 account_llc_dequeue 的单点守卫扩展到 enqueue + set/clear_delayed 全路径,并最终收敛为 task_pref_llc_runnable 谓词与 pref_llc_running_inc/dec hel...
Gregory Price 的 2 patch 系列针对 memory tiering 模式下 NUMA balancing 的 VMA 扫描过滤过严问题:per-VMA PID filter 和 read-only file mapping 排除让慢层 folio 永远进不了 promotion 候选,导致大型 shmem 把 hash table 全部堆到 CXL。新增 vma->numab_state->slow_only,在 tiering 模式下对被过滤 VMA 做受限扫描(只标慢层 folio),toptier 标记行为不变;实测 DRAM 带宽从 150GB/s 回到 200-2...
v3 系列(2 个 patch)修复 proxy execution 场景下的回归:当 fair 任务替 RT/deadline donor 实际执行时,task_tick_numa() 与 task_tick_cache() 因被包在 task_tick_fair() 里而被漏掉,导致 cache scan epoch 过期、preferred LLC 失效。新增 sched_tick_exec_ctx() helper,统一在 sched_tick() 与 sched_tick_remote() 中按 rq->curr 触发执行上下文 tick,同时保留 misfit/overutiliz...
Zhe Liu 修复 cgroup v1/v2 CPU bandwidth 中 quota 与 burst 写入顺序耦合导致的 EINVAL 问题。v1 提出在 quota 变更时把不兼容 burst 写零;Michal Koutný 评审建议改为 clamp 以保留用户配置,v2 采纳并在 CFS runtime refill 处用 min(burst, quota) 做裁剪,新增 selftest 与文档。
v2 patch 让 update_se() 中的 cgroup_account_cputime 跟随 rq->curr 而不是 donor,修正 proxy execution 下 cgroup CPU usage 被算到 donor cgroup 的回归。改动仅 -3 +1 行,作者补全了 cgroup v2、cgroup v1 cpuacct、RT donor、sched_proxy_exec=off 对照组等多场景验证。Tejun Heo 的回复仅引用 patch 上下文,尚未给出明确 LGTM。