-
memcg 在 dying 时 bail out reclaim
回收循环每轮检查 memcg 是否正被销毁并及时退出,释放其 kernfs 引用解除全局 cgroup 锁长持,消除约 159 秒停摆
-
zswap_shrinker_count 改用 ratelimited stats flush
改用限速 flush 替换 zswap 回收量估算的同步全局 rstat 锁,让锁竞争归零,把约 84% 周期从锁等待还给实际回收
-
去掉匿名页重用路径的冗余 lru_add_drain
匿名页重用路径删除冗余 LRU drain,改为按 folio 是否在 lru_cache/swapcache 触发,消除已失效的无条件 drain,冗余调用最多减约 30%
-
用批量拷贝与 hardware offload 加速页迁移
将页迁移的拷贝批量化并交给 DMA 硬件并行卸载,2M folio 迁移吞吐提升约 6 倍
-
降低 cgroup v2 上的 CPU 与内存及代码开销
扩展 vmpressure 入口早退,挡住 cgroup v2 上空转的用户态通知路径,每分钟约 1.6 万次无谓调用归零
-
修复 shmem 的自动 NUMA balancing
让空 NUMA 策略的 shmem 回退到任务策略,恢复默认 tmpfs 的 tier 迁移与 NUMA 扫描
-
降低 zs_free 的锁竞争
把大小类索引编码进对象以无锁定位、并将整页释放移出类锁,让 zs_free 多核并发提速约 1.8 倍
-
在 buddy fastpath 使用已有的 highatomic 预留
分离 highatomic 标志的用已有预留与增长预留两项职责,让快路径消费已有预留却不增长,高优先级非阻塞分配不再 fallback
-
减少不必要的 xarray 查找
filemap 读路径拿到最后一个所需 folio 后仍多走一轮 xarray 迭代;边界检查移到迭代器前进之前,filemap_get_read_batch() 开销从 2.91% 降到 2.53%
-
为 PowerPC Book3S64 启用 THP swap
Book3S64 THP swap 静态数组改取运行时大页阶数与架构上界,启用整个大页 swapout、免逐 small folio 重复记账与 I/O,swapout 带宽 Hash 翻倍
-
改用 walk_page_range_vma() 消除 find_vma()
walk_page_range() 每次页表遍历都做一次 find_vma(),对已知单 VMA 范围的调用方属冗余;mincore、mprotect、mlock、migrate_device 四处改用 walk_page_range_vma()
-
避免碎片化下的 reclaim 与 eviction 循环
把可失败分配意图传给 shrinker 使其跳过无益驱逐,打断碎片化下的回收驱逐循环,WebGL 帧率约升 5 倍
-
vmalloc 的 vmap_area 索引从 rbtree 迁移到 maple_tree
把 vmap_area 索引从红黑树迁到 maple tree 使区间查询原生化并减少缓存行触碰,饱和吞吐提升约 65%
-
memcg slab 回收跳过非 memcg 感知的 nr_cached_objects
给非 memcg 感知的文件系统钩子加 memcg 闸门,使其只在全局回收路径放行,消除逐组冗余调用并堵住跨组回收 inode