为了进一步增强 Linux 上的 AMD EPYC 虚拟化体验,即将推出的 Linux 6.14 看起来将支持 Zen 5 的新 RMPREAD 指令和分段 RMP 模式,作为安全加密虚拟化安全嵌套分页 (SEV-SNP) 的一部分。
RMPREAD 是带有 Zen 5 处理器的新指令,用于读取架构定义的 RMP(反向映射表)条目。使用 RMPREAD 是现在在支持的(Zen 5 和未来)处理器上读取 RMP 表条目的首选方法,而非架构 RMP 格式仍用于具有 SEV-SNP 的 Zen 3 / Zen 4 处理器。
RMPREAD 说明文档可以通过 AMD 文档找到。RMPREAD 指令和分段 RMP 模式在 AMD 补丁集中描述为:
“该系列增加了 SEV-SNP 对读取 RMP 条目的新指令和分段 RMP 表的支持。
RMPREAD 指令用于以体系结构定义的格式返回与 RMP 条目相关的信息。
…
分段 RMP 支持是表示 RMP 表布局的一种新方法。初始 RMP 表支持要求 RMP 表在内存中是连续的。从 RMP 所在的 NUMA 节点进行 RMP 访问所需的时间可能比从 RMP 所在的 NUMA 节点进行访问所花费的时间更长。分段 RMP 支持允许 RMP 条目与 RMP 覆盖的内存位于同一节点上,从而可能减少与访问与内存关联的 RMP 条目相关的延迟。每个 RMP 分段都涵盖特定范围的系统物理地址。
在过去几个月经历了六轮修订之后,即将推出的 Linux 6.14 内核似乎将在新的 AMD EPYC 9005 系列上使用 SEV-SNP 和 Linux 虚拟化的用户支持使用 RMPREAD 和分段 RMP 模式。
在过去的几天里,这些 RMPREAD 和分段的 RMP 表补丁是通过 tip/tip.git 的 x86/sev 分支获取的。现在,在 Linux 6.14 合并窗口于 1 月下旬打开前几周,它已进入 TIP 分支,除非出现任何最后一刻的问题,否则这些功能补丁应该在下一个内核中。