-
device page 的缺页时迁移
HMM pagewalk 单次遍历合并缺页处理与迁移收集,两个入口加标志打通,页表遍历从最多 3 次降为 1 次
-
内核态对用户地址的缺页改用 per-VMA lock
内核态对用户地址的缺页从无条件回退 mmap_lock 改为先试 per-VMA lock,降低锁竞争,也为 filemap 持锁做 I/O 铺路
-
coredump 新增 filesz 截断过滤选项
coredump_filter 新增截断位,PT_LOAD filesz 小于 memsz 跳过尾部零页,Meta 实测 coredump 体积与 IO 降约 40%
-
新增 page_reporting_delay_ms 模块参数
free page reporting 硬编码的 2HZ 间隔改为模块参数 page_reporting_delay_ms,默认 2000 不变,按 workload 调上报节奏
-
修复 collect_longterm_unpinnable_folios() 必然全 CPU drain LRU cache
引用比对漏算 pin 对 small folio 的 1024 偏移,FOLL_LONGTERM 路径必然全 CPU drain LRU cache,修正后按需 drain
-
内存降级改用 non-temporal stores
降级路径的 folio 拷贝改用 non-temporal stores,绕过缓存直写目标页,64GB 降级时 CXL 设备读流量从 64GB 降到几乎 0
-
为块设备启用 RWF_DONTCACHE
为块设备启用 RWF_DONTCACHE,新增 task-context bio completion 把 IRQ 里完成的 dropbehind 延迟到 worker,写 +105%,读 +56%
-
oom reaper 完成后让 dying task 跳过 reclaim 与 OOM killer
dying task 在 oom reaper 放弃后让 charge 直接失败,跳过 reclaim 与 OOM killer,20k 线程退出从约 90 秒降到约 3 秒
-
引入 kfree_rcu_nolock()
kfree_rcu_nolock() 任意上下文可调,sheaf 快路径覆盖 unknown context、PREEMPT_RT 与 !allow_spin,兜底走单指针元数据的 kvfree_rcu 批处理
-
移除引用计数的 huge zero folio
移除可选配置让 persistent huge zero folio 默认,消除读故障延迟并删引用计数与 shrinker 路径
-
pghot 热页跟踪与提升基础设施
pghot 统一多来源热页检测,按 PFN 跟踪热度由 kmigrated 线程集中提升到 DRAM,llama.cpp decode 较 NUMAB2 提升 1.41 倍
-
用 vmstat 推导 scan-balance cost 降低 lru_lock 竞争
把扫描均衡代价从 lru_lock 下移到 vmstat 计数,让消费端无锁读取,内存压力下锁等待降约 61%
-
减少 slabobj_ext 的内存浪费
slabobj_ext 改 union 按需占用字段,profiling 禁用不分配 codetag_ref、不需 objcg 的 cache 不分配 objcg
-
在 migrate_pages_batch() 中上报 RCU-tasks 静止状态
大批量迁移的 unmap 循环靠 cond_resched() 让出 CPU,PREEMPTION 内核上它是空操作,迁移任务长期不上报 RCU-tasks 静止状态触发分钟级 stall;换 cond_resched_tasks_rcu_qs() 解耦上报与调度