Spectre变种2的修补程序拖慢性能,Linux之父又要不开心了

Linux之父Linus Torvalds年初批评英特尔修补Spectre变种2漏洞的程序完全是垃圾,因为它造成系统性能大降,最近这个问题又出现而使他欲除之而后快。

Torvalds复出管理Linux,本周宣布发布的Linux 4.20-rc 3核心。但根据Phoronix报导,安装Linux 4.20核心的Intel Core i9机器在PHP性能测试,比之前成绩掉了30%,也是今年内所有安装Spectre/Meltdown修补程序的机器中性能跌幅最大的。而在Python性能测试结果中,Linux 4.20也明显退步。报导还称这样的成绩使一台搭载双Intel Xeon Gold CPU的顶级服务器变得和AMD EPYC机器差不多。

造成Linux 4.20性能大跌的元凶是这版核心默认加入修补Spectre变种2漏洞的新作法,称为“单线程间接分析预测(Single Thread Indirect Branch Predictors,STIBP),它会让跑在Intel CPU上的Linux 4.20更新到最新微代码。STIBP是英特尔由于Spectre变种2提供的3种缓解决方案案之一。其他还包括IBRS(Indirect Branch Restricted Speculation及IBPB(Indirect Branch Predictor Barrier)。STIBP专门防护具备Hyper Threading(英特尔版的Simultaneous MultiThreading,SMT)功能的Intel CPU。

这结果让Torvalds看不下去。他指出,“英特尔称STIBP是稳定作法,但却完全没有讨论它对性能的影响有多大。但性能下滑到只剩50%时,大家应该自问这是不是值得,还不如把SMT整个关掉。”他说平时安全习惯够好的用户已经有人这么做了,那在这种情况下,为什么还要让STIBP造成性能下降的事成为Linux的默认?

Torvalds认为对于L1TF漏洞修补程序也是一样逻辑:不会影响性能的东西才能变成默认。他说只要提出一次警告就好,如果有人愿意付出下跌50%性能的代价来避免理论上才有的安全风险,那就随他便。

年初英特尔提供的IBRS修补机器也造成硬件性能降低,让Torvalds称之为“彻头彻尾的垃圾”(complete and utter garbage)。