-
swap readahead 移除不必要的 lru_add_drain
移除 swap readahead 结尾无调用者依赖的 LRU 刷洗、改由 per-CPU 批次自然排走,消除每分钟约 2.8 万次冗余锁流量
-
khugepaged 支持 mTHP 折叠
khugepaged 改用 bitmap 记录整段占用并按对齐子段挑最大可用 mTHP 折叠,兑现此前流失的中等大页,降低 TLB 未命中
-
simple xattr 改进
让 simple_xattr 哈希表整个 superblock 共享来摊薄固定开销,单属性内存占用降回约 111 字节
-
将 compact_gap 封顶于 COMPACT_CLUSTER_MAX
把 compact_gap 封顶于 compaction 单批隔离容量,让 kswapd 更早把高阶回收交班 compaction,生产主机扫描量降约 70%
-
改进可执行内存的 large folio 预读
让可执行映射跳过投机节流计数并放宽强制预读阶门槛,恢复被永久禁用的 large folio 预读,cold fault 快约 50%
-
削减 xarray 查找并用 folio batching 优化 shmem 读
削减 shmem 读的多余 xarray 查找,用大块填零与 folio batching 摊薄逐页开销,大块读吞吐最高提升约 42%
-
批量处理 partial slab 链表操作
SLUB 批量取 slab 时追踪连续 slab 段整段搬移、只改两端指针,缩减自旋锁临界区指针改写,mmap 压测吞吐提升约 5%
-
THP shrinker 改用 list_lru
改用节点与 cgroup 交集的 list_lru 组织 THP 延迟分裂队列,让节点受限回收只扫目标节点,避免误分裂、保留更多 THP
-
优化匿名 large folio 的取消映射
匿名 large folio 换出时一次清空并重设整批 swap PTE,让 TLB flush 随批量下降,arm64 换出耗时减半
-
缩小 obj_stock_pcp 并缓存多个 objcg
让 per-CPU 计费缓存多槽并存使各 NUMA 节点变体同时驻留,免去跨节点反复清空重填,修复约 68% 吞吐回归
-
用 folio_mark_accessed 取代 folio_set_active
改用标记被访问而非设活跃让 readahead 带入的 cold folio 从次旧 generation 起步,不再挤占内存,系统态耗时降约 10%
-
优化 partial refill 后返回对象的路径
为 SLUB refill 后的剩余对象返回加乐观路径,利用 slab 刚取走空闲链表大概率无人改动直接整段接回,省去回填冷缓存行的开销
-
修复 defrag_mode 对不可回收分配的处理
清除不可回收分配慢路径残留的不碎片化标志、放开回退到其它迁移类型,避免 13 GB 空闲下仍分配失败致网络丢包
-
vrealloc 缩小时释放多余物理页
vrealloc 缩小时跨页边界取消映射并归还尾部页,让 vmalloc 占用紧贴实际使用量、不再白占至 vfree