曾被 Linus 点名批评的英特尔 LAM(Linear Address Masking :线性地址掩码) 功能,终于合并到 Linux 6.4 中。
英特尔线性地址掩码 (LAM) 允许软件将 64 位线性地址的未转换地址位用于元数据,可用于用户空间内存清理和标记等元数据的多种用途。
它的本质上类似于 AMD 的高位地址忽略 “UAI”(Upper Address Ignore )以及 Arm 的顶部字节忽略 “TBI”(Top-Bits-Ignore)功能。
英特尔在 2020 年初次对外展示 LAM,此后一直致力于为其提供 Linux 内核支持。Intel LAM 最初提交到了 Linux 6.2 合并窗口,但随后受到了 Linus 的严厉批评,从名称到功能设计等多方面批判了一番。
在代码得到改进后,LAM 支持代码再次作为 x86/mm 的一部分发送到了 Linux 6.4 的合并窗口。Linus Torvalds 在周五进行了合并,拉取了英特尔工程师提交的 LAM 启用代码(尽管 Linus 个人仍然不喜欢该功能的名称)。
这次 Linus 没有对 LAM 的代码提出任何根本性的反对意见,但他最后自己写了一个新补丁,使 access_ok() 独立于 LAM,因为他不喜欢这个设计。