Linux 将不再默认启用 AMD SME

出品|开源中国
作者|御坂弟弟
邮件列表显示,由于某些平台上的缺点,Linux 内核将不再默认在支持的硬件上使用 AMD 安全内存加密 (SME)。
图片
自从将 AMD SME 支持引入 Linux 内核以来,当内核中内置 SME 支持 (AMD_MEM_ENCRYPT) 时,安全内存加密都会默认激活。"AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT" 的默认设置允许开箱即用地使用安全内存加密,而无需指定任何额外的内核参数等。然而,这导致了某些平台上的启动失败,尤其是 IOMMU 以及一些图形驱动程序,不希望对内存进行加密。
默认情况下不使用 AMD SME 的更改源于相关平台问题Raven Ridge,以及默认情况下尝试 SME 可能导致的启动失败。不过,由于 SME 需要在内核启动过程的早期阶段启用,至少目前不可能有增强的逻辑来以更健壮的方式确定何时可以在没有用户交互的情况下启用/禁用 SME。
因此,随着x86/urgent pr进入 Linux 5.15,然后向后移植到以前的内核,AMD 内存加密将不会默认启用。如果当前内核已经包含了 AMD 内存加密代码,则仍然可以通过设置 "mem_encrypt=on "选项来启用安全内存加密。