AMD发布了一个新的Linux内核补丁系列,用于为 “即将到来的处理器 “启用一个新功能,这几乎可以确定是为Zen 4准备的,继续他们最近几周围绕更多开源补丁的工作,为其下一代处理器做准备。
今天发出的补丁系列被标记为 “征求意见”(RFC),它利用了即将到来的AMD处理器的Upper Address Ignore(UAI)功能,以实现用户空间地址标记功能。
早在11月更新的AMD64架构程序员手册确实规定了用户地址忽略,但显然没有说明它何时会出现在未来的AMD处理器中。现在Linux内核的UAI补丁已经出来了,这几乎可以保证它将出现在Zen 4中, AMD还没有到公开研究未来两代Linux内核功能的阶段。
AMD的程序员手册之前概述了Upper Address Ignore功能。现在他们正在研究Linux的UAI的第一个计划用法。
AMD的Upper Address Ignore功能可以以类似于Arm的Memory Tagging Extension(MTE)的方式使用,该功能是在Armv8.5-A中加入的,更广泛的是作为AArch64的一部分,支持Top Byte Ignore(TBI)。在Arm的MTE案例中,主要是作为一个内存安全功能,而AMD的UAI主要是对内存地址的其他未使用位进行开放式标记,就像AArch64的TBI。
英特尔的ISA编程参考手册先前概述了他们的线性地址屏蔽(LAM)功能,其性质与AMD UAI相似。
英特尔方面也一直在研究类似的东西。自2020年以来,我已经注意到英特尔如何一直在研究线性地址屏蔽(LAM)。线性地址屏蔽是指利用64位线性地址的未翻译的地址位进行元数据。英特尔LAM将在未来的处理器中出现,围绕它的Linux内核使用仍在最后确定,与今天的AMD UAI补丁有一些重叠。
通过今天提出的补丁,AMD正在寻求利用UAI进行用户地址标记。AMD的补丁集建立在Intel LAM Linux补丁的基础上,用于扩展AArch64的SET_TAGGED_ADDR_CTRL/GET_TAGGED_ADDR_CTRL prctl()选项,将x86_64地址标记开放给用户空间。内存标记可以通过跟踪非法内存操作来检测内存漏洞和其他问题,以及其他可能的使用情况。
到目前为止,AMD UAI对Linux内存标记的支持已经被 “轻度测试”,今天在RFC标志下发布,以寻求其他内核开发者的反馈。请看AMD为Linux内核的用户空间地址标记所做的初步工作的补丁系列,以及他们即将推出的(Zen 4)处理器