AMD here 指出,它们不受 Meltdown(即变体 3)影响,可能不是变体 2,而是变体 1(均为 SPECTRE)。因此,AMD 发布了FAM 17H(即 Ryzen) 的微代码更新,并关闭了分支预测。 这里关闭了什么样的分支预测?
遗憾的是,我只拥有移动 SandyBridge* 和 AMD Phenomen X4 905e(更新的微代码仅适用于 Ryzen)。有些可以使用排序数组执行像here这样的基准测试吗?
提到的 SUSE 更新仅涉及“分支预测”,这可能意味着变体 1(if/else)或变体 2(分支跳转缓冲区)。此外,来自 Google 的人们对变体 1 和变体 2 使用术语“分支预测”。因此,实际关闭的内容是不明确的。
如果AMD由于不同的实现而可能不受影响,那么AMD为什么要关闭变体2(分支跳转缓冲区)。或者是变体 1(if/else),它可能会大大减慢很多工作案例的速度。预排序数组是一个可能的使用案例,其中分支预测提高了性能。
谢谢 *在这里添加一些芬兰脏话...
AMD 似乎现在正在使用
间接分支限制推测 (ibrs),但并未完全关闭。
AMD Defaults:
Due to the differences in underlying hardware implementation, AMD X86 systems are not vulnerable to variant #3. The correct default values will be set on AMD hardware based on dynamic checks during the boot sequence.
pti 0 ibrs 0 ibpb 2 -> fix variant #1 #2 if the microcode update is applied
pti 0 ibrs 2 ibpb 1 -> fix variant #1 #2 on older processors that can disable indirect branch prediction without microcode updates
https://access.redhat.com/articles/3311301
所以 SUSE 的通知并不正确。