Andrew Morton 提交了大量针对 Linux 6.1合并窗口的内存管理(简称“MM”)代码。其中最值得注意的是多代 LRU “MGLRU” 页面回收策略和 Maple Tree 功能。
多代 LRU “MGLRU” 由 Google 开发,可用于改进 Linux 内核的页面回收策略。MGLRU 已被证明能够为各种工作负载提供非常好的性能优势,尤其是在低内存设备面临高内存压力的情况下。Google 已经将 MGLRU 用于 Chrome OS 和 Android 13 ,并取得了不错的成效,该功能也被各种其他下游 Linux 使用。
2022 年 Linux Plumbers 大会也介绍了 MGLRU 功能,可以在这个 PDF 中找到。
事实上,MGLRU 从 Linux 5.18 就开始进入了内核树中,但当时 Linus 以“该功能未经全面测试”为由拒绝合并该功能,针对该功能的测试一直持续到现在。Andrew Morton 评论了 MGLRU 补丁:
Yu Zhao 的 Multi-Gen LRU 补丁也在这里。他们已经在 linux-next 中测试了几个月,据我所知,没有任何负面报告(或任何正面报告)。
内存管理的 PR 还包括 Oracle 开发的 Maple Tree 数据结构,作为虚拟内存地址的基于范围的重叠树,可以提供一些效率改进。其他内存管理补丁则包括 Kernel Memory Sanitizer (KMSAN) 发现的一些错误、NUMA 平衡内存分层模式的页面提升代码的增强、MEMCG 更新、VMA 合并改进、KASAN 更新、DAMON 清理和其他各种低级内核工作。
Linux 6.1 合并窗口的内存管理补丁完整列表可以通过这个拉取请求找到,如果 Linus 同意合并,MGLRU 应该是 2022 年最好的内核特性之一。