预计今年晚些时候的 Linux 6.12 内核周期将引入许多新的 Kconfig 选项,以便更好地控制内核构建中包含的 CPU 推测执行安全缓解措施。
上周,在 tip/tip.git 的 “x86/bugs” 分支中排队的是添加一些新的 Kconfig 选项,用于在构建时控制单个 CPU 的安全缓解措施。
Debian 开发者 Breno Leitao 在补丁系列中解释了他们所做的努力:
“当前的 CONFIG_SPECULATION_MITIGATIONS 命名空间只有一半填充,其中一些缓解措施在 Kconfig 中有条目,并且可以修改,而其他缓解措施没有 Kconfig 条目,并且在构建时无法控制。
正确添加了新的缓解措施,例如 BHI,即具有独立的 Kconfig,它依赖于CONFIG_SPECULATION_MITIGATIONS,因此,您可以在编译时启用/禁用。
此补丁集旨在使旧的缓解措施采用相同的格式,从而使缓解措施具有一定的一致性。
以下是对缓解措施进行精细控制的优点:
1) 用户可以选择并仅选择对其工作负载很重要的缓解措施。
2) 用户和开发人员可以选择禁用破坏汇编代码生成的缓解措施,使其难以阅读。
3) 为了源代码的可读性,将 Kconfigs 分开,这样我们就能看到*哪个*丑陋的废话代码是出于什么原因……
在大多数情况下,如果在编译时禁用了缓解措施,仍然可以在运行时使用内核命令行参数启用它。
现在,通过 Kconfig 进行构建时控制的专用可调参数包括 MDS、TAA、MMIO Stale Data、L1TF、Retbleed、Spectre V1、Spectre V2、SRBDS、SSD 和 GDS。
随着这些补丁现在进入 TIP 分支 (x86/bugs),这些新选项预计将提交给 Linux 6.12 合并窗口,该窗口将在 v6.11 首次亮相后的 9 月打开,然后在接近年底时看到一个稳定的版本。