出品|开源中国
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 年最好的内核特性之一。
领取专属 10元无门槛券
私享最新 技术干货