今天早上发出的是一个 Linux 内核“修复”,它现在在 AMD 处理器上使用 IBPB 模式来缓解 Retbleed 时启用了 STIBP。换句话说,这种增强的 Retbleed 缓解模式需要更多保护。
上个月Retbleed作为一种利用返回指令的新投机执行攻击被公开。Retbleed 影响第 8 代及更早版本的 Intel CPU 以及 AMD Zen 1、Zen 1+ 和 Zen 2 处理器。上个月添加的 Retbleed Linux 内核缓解措施会影响英特尔的性能,这对 AMD 来说也很痛苦,尤其是在较旧的 Zen 1 CPU上。
如果选择更安全的间接分支预测屏障“IBPB”缓解措施,也可以缓解基本块边界上的短推测窗口,而不仅仅是“unret”默认值,那么现在一个月后会出现单线程间接分支预测器“STIBP”也必须启用。
Retbleed 基于 IBPB 的保护被认为是最安全但对性能影响最大的,因此不是默认行为。使用今天的新 Linux 内核“修复”,如果要使用基于 IBPB 的保护,现在有一个“ibpb,nosmt”模式,如果给定系统上不支持 STIBP,则同时多线程 (SMT) 将被禁用。
在 IBPB Retbleed 缓解模式下开启 STIBP 仅适用于 AMD 处理器,现在显然已确定仅 IBPB 不足以防止 AMD Zen 1 / 1+ / 2 处理器上的 Retbleed。本周六早上 Ingo Molnar 在邮件列表中的“ x86 fix ”消息简单地总结为:
修复 AMD CPU 上的“IBPB 缓解 RETBleed”操作模式(默认情况下未打开),即使在最短的推测窗口中也需要启用 STIBP(如果可用)以“100% 安全”。
代码补丁还添加到文档中:
仅基于 AMD 的 UNRET 和 IBPB 缓解措施并不能阻止同级线程影响其他同级线程的预测。出于这个原因,STIBP 用于支持它的处理器,并在不支持它的处理器上减轻 SMT。
同样,这种retbleed=ibpb模式不是当前 Linux 上较旧 AMD Zen CPU 的默认模式,而是对性能最安全和最沉重的打击,现在更加沉重,因为 STIBP 也被强制用于有能力的 CPU。看起来我很快就会运行一些新的 Retbleed AMD Linux 缓解基准测试,看看对不同缓解路径的性能影响。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun179955.html