Linux 6.1 将迎来 MGLRU 和 Maple Tree 支持


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 年最好的内核特性之一。


相關推薦

2022-12-12

Linux 6.1 内核合并面向 LoongArch 架构的 CPU 特性 Linux 6.1 将迎来 MGLRU 和 Maple Tree 支持 Linux 6.1 迎来 Btrfs 异步缓冲写入补丁,吞吐量翻倍 Linux 6.1 引入新功能,更容易辨认出故障的 CPU Linux 6.1 引入 VirtIO 块“安全擦除”、vDPA 功

2022-11-14

Linus Torvalds 已发布 Linux 6.1-rc5 ,作为 Linux 6.1 内核的每周测试版本。 本周的测试版本有许多小的修复,包含驱动程序、网络、架构修复等。代码相当分散,除了一些 maple tree 测试被移动到测试子目录之外,diffstat 看起来相当平

2023-04-01

本;L2企业版基于L1源社区版本加固,提供企业级的技术支持及服务,可用于真实业务场景,是稳定可靠的发行版本;L3社区版基于L2企业版进一步优化,是代码完全开源、生态全面开放的发行版本。 早在2010年,腾讯就已经推

2022-08-16

码,这些代码主要来源于 AMD GPU 和英特尔 Habana Labs Gaudi2 支持代码。下面是该版本一些重要的变更: 合并大量 char/misc 代码,提供 Gaudi2 支持 引入 F2FS 低内存模式,用性能减少内存占用  为 LoongArch 架构启用 PCI 和其他功

2023-07-03

理发布,并在邮件列表中进行讨论。不过近日,他就为 Linux 6.5 进行了将近 500 行的 code rework ,以改进用户模式的堆栈扩展代码。 他在合并报告中解释称: 这修改了我们的用户模式堆栈扩展代码,使其在修改 VM 布

2022-02-15

Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 近日再向 Linux Kernel 邮件列表提交了一个新补丁 (v4),继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。此举意味着对 Linux 内核驱动程序等的可选 Rust 编程支持继续成熟;Phoro

2022-09-19

Red Hat 工程师 Hans de Goede 长期致力于解决台式机/笔记本电脑的 Linux 硬件改进,在近日的 Linux Plumbers 大会上,Hans  介绍了最新的改进:用户空间的背光/亮度界面接口优化。 早在 2014 年Hans 就一直在谈论背光接口的问题,一

2022-10-09

asantas 就提出了不同的看法,他表示: 由于没有 Rust 支持,6.0 或 5.19 更合适作为 LTS 版本。很多社区都对 Rust 犹豫不决,如果有一个除了 5.15 之外的不支持 Rust 的 LTS 会更好。这可以让 LTS 过渡更加顺利,也可以让我们这些

2022-10-17

大约有 60% 的版本代码是新驱动程序,以提供更好的硬件支持,此外也包含架构更新、文件系统和工具改进,还有其他提高性能的改动。 这实际上并不是一个特别大的版本:在此合并窗口期间,我们“仅”有 11.5k 非合并提交

2022-10-12

gArch EFI Boot,因此适用于 LoongArch 架构的 Linux 6.1 已准备好支持 LoongArch EFI Boot。这是继8月份的 UEFI 2.10 规范之后,正式增加对 LoongArch 处理器架构的支持。 虽然早在 Linux 5.19 就已合并龙芯 LoongArch CPU 架构,但初步支持阶段的功能

2022-09-30

先回顾关于 Linux 内核支持 Rust 的消息。 2019 年,内核维护者 Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序。 2020 年,Linus Torvalds 回应了针对 Linux 内核支持 Rust 的个人看法。他没有否定该提议,而是提倡在默认

2022-10-06

生,但就在本周末,仍有一些 Linux 用户对 Rust 编程语言支持 Linux 内核的想法持不同意见。不过现在它已经落地了。 在合并之前,来自谷歌的 Linux 内核工程师 Kees Cook 在 PR 中写道,希望 Linus 能在 Linux 6.1-rc1 中合并对 Rust 的初始

2023-10-09

Cutefish SIG成员的努力下,openKylin开源操作系统桌面环境又迎来一个新成员—Cutefish。这也是继UKUI、KDE、Xfce和DDE之后,openKylin开源操作系统支持的第五个Linux桌面环境,为社区用户带来更多选择。 Cutefish是一款简洁、美观、

2022-10-31

Linus 发布了 Linux 6.1 的第三个 RC 版本。 这个版本代码占主导地位的是驱动程序(主要是网络、gpu 和音频,其他驱动也占一些),除了驱动程序之外,工具更新也很突出,包括自检、性能和 pm-graph 工具都得到更新。 另外是一