-
zswap writeback 完成后及时释放 cold folio
扩展 dropbehind 到 swap cache folio,zswap 写回完成即释放 cold folio,MySQL OLTP +6.1%、内核构建 -3.6%
-
MGLRU 频率引导晋升(MGLRU-FG)
MGLRU 按访问频率在访问时主动晋升热页,refs 统一编码省 1 个 flag 位,多负载吞吐最高 +49.0%
-
让用户态页表释放 RCU 安全
把剩余架构全部转换为 RCU 宽限期后释放页表并删除 CONFIG_MMU_GATHER_RCU_TABLE_FREE,仅凭 RCU 的无锁页表遍历从此安全
-
在 per-VMA lock 下读取 smaps_rollup
smaps_rollup 改用 RCU 加 per-VMA read lock 读取,不再全程持 mmap_lock 遍历 VMA 与页表,保留竞争回退与 VMA 合并后的续扫处理;竞争基准下中位延迟 0.174 降至 0.007 秒,最差延迟 5.220 降至 3.225 秒
-
在 per-VMA lock 下重试一次 page fault
让 per-VMA lock 路径下返回 VM_FAULT_RETRY 的 fault 原地重试一次,仍失败才退回 mmap_lock,filemap 吞吐最高提升 69.6%
-
device DAX 切换到基于 section 的 vmemmap 优化
device DAX 从 DAX 专用 vmemmap 填充模型切到 HugeTLB 的 section-based 基础设施,compound order 记入 section,换用 per-zone 共享 tail 页并去掉专属预留尾页
-
KSM 查找合并候选 VMA 改用 per-VMA lock
KSM 定位合并候选 VMA 从 mmap_read_lock 改用 per-VMA read lock,同一 mm 的无关 mmap 与 munmap 不再阻塞 ksmd,4 个干扰线程下合并耗时 72.45 秒降至 36.61 秒
-
cache 感知调度修复
修复 cache 感知调度在偏好计数、active balance 迁移语义与统计生命周期上的缺陷,让任务稳定留在 preferred LLC 上,并消除记账路径的 use-after-free
-
硬件采样的访问报告
把 DAMON 的访问信息来源从 Accessed 位扫描扩展到硬件采样 PMU:per-CPU 无锁 report ring 按 probe class 分区承接 NMI 样本,统一 drain 把报告折算进 region 计数,PMU 供热度、page fault 供年龄,promotion 与 demotion 在同一 kdamond 下双向迁移,实测带宽较最优单节点分别提升 59.5% 与 18.0%
-
guest_memfd 原地转换支持
让 guest_memfd 的 shared 与 private 转换原地完成,不再 tear down 重建:memslot 只认 guest_memfd 一个后备,KVM_SET_MEMORY_ATTRIBUTES2 支持增量转换与失败偏移上报,转换前排干 lru 与 mlock 批缓存并按 refcount 确认页未被使用,失效按映射类型精确 zap,get_pfn 时清零页防止泄漏宿主内存,未启用转换的 VM 经死代码消除零开销
-
HugeTLB 引入按 section 的 vmemmap 优化
把 HugeTLB 的 vmemmap 优化从专用 early-boot 预填充路径切换到通用 section-based 路径:compound page order 记录进 memory section 元数据,通用 sparse-vmemmap 填充路径据此分配共享尾页 vmemmap,memmap_init_range 跳过共享尾页,SPARSEMEM_VMEMMAP_PREINIT 与相关 bootmem 标志位随之删除
-
优化 zswap 的失效与存储路径
把 zswap_invalidate() 改为按 range 批量处理,并在 zswap 从未启用时经 static branch 整体跳过;zswap_store() 回退路径复用同一实现,消除 swap 槽位释放与存储回退路径上的逐槽 xarray 开销
-
恢复 nokmem 下 NONSLAB shrinker 的 per-memcg 回收
让 cgroup.memory=nokmem 下 THP deferred split 与 zswap 两个 shrinker 恢复 per-memcg 回收:list_lru xarray 改用与 kmem 计费无关的 cgroup ID 索引,NONSLAB 支撑的 lru 在 nokmem 下保持 memcg 感知,两个 shrinker 补上 SHRINKER_NONSLAB 标志,limit 回收重新精准拆分 THP 并回写 zswap 页
-
跳过 swapoff 扫描中的空 cluster
find_next_to_unuse 改按 cluster 扫描,空 cluster 一次计数读整簇跳过,1 TiB 设备填充 512 GiB 时 swapoff 耗时降 81.3%