openSUSE的Spectre缓解方法导致性能下降

导读 openSUSE默认使用IBRS作为其Spectre Variant 2缓解方法而不是Retpolines,这是该发行版与其他Linux发行版相比开箱即用性能较慢的原因之一。

这个opensuse-factory邮件列表引用了联想笔记本电脑在使用openSUSE时“巨大的单核性能损失”。围绕Spectre Variant 2 缓解措施的单线程性能损失约21%,这本身并不令人惊讶,因为我们已经多次说明了Spectre/Meltdown缓解的性能成本。

openSUSE的Spectre缓解方法导致性能下降

openSUSE的内核正在使用IBRS(间接分支限制投机)和最新的英特尔CPU微代码映像,而大多数Linux发行版依赖于Retpolines作为返回trampolines。与Retpolines相比,IBRS缓解技术可能会导致更多的性能损失,据报道,与更新的Intel CPU微代码相匹配时,由于更严格的推测行为,会产生更大的性能损失。

根据邮件列表讨论,切换到Retpolines以查找有问题的工作负载可以恢复性能

希望使用非默认方法的openSUSE用户可以使用spectre_v2=retpoline来选择它,这是一个通用内核命令行参数,与大多数其他Linux发行版内核的行为相匹配。

至于openSUSE更改他们的默认值,至少从之前的邮件列表讨论来看,他们的内核工程师似乎没有兴趣更改Spectre的缓解默认值,但只是将英特尔的糟糕表现归咎于他们的问题。

有些人还建议openSUSE安装程序在其安装程序中选择一个切换,以便通知用户安全性与性能偏好,从而更好地提供合理/明智的默认设置,但到目前为止,我们还没有看到采取任何措施来实现这一点。虽然考虑到一些openSUSE的保守默认值与大多数其他Linux发行版相比确实存在性能影响。

以前Retpolines使用的障碍需要Retpolines编译器支持,但这种支持现在已经有一段时间了。据报道,Skylake过去曾报道过Retpolines问题,但这些问题似乎也得到了解决。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/124969.html

(0)
上一篇 2021年8月29日
下一篇 2021年8月29日

相关推荐

发表回复

登录后才能评论