因为Linux Kernel 4.20默认启用了Spectre补丁STIBP,所以导致性能的下降,下降幅度甚至达到了50%,目前STIBP已经被移除,在最新发布的Linux Kernel 4.19.4、4.14.83内核当中已经移除了STIBP补丁。据称Linux Kernel 4.20就是启用了Spectre补丁STIBP才导致性能远不如Linux Kernel 4.19,不过随后在Linux 4.19.x版本中加入STIBP后性能也出现了下降,因此,包括Linus、Greg Kroah-Hartman等Linux内核维护人员决定对STIBP进行移除并整改。目前Linux内核多用于服务器部署,如果性能影响过大会让使用Linux的计算机大幅度增加开支。
STIBP介绍
STIBP(全称Single Thread Indirect Branch Predictors),它是Linux Kernel 4.20内核上的Spectre补丁,正因为这一补丁,使得运行Intel CPU的计算机性能出现性能下降,该补丁先后被移植到Linux Kernel 4.19、4.14内核当中,也导致了这些Linux内核版本的性能下降。
Linus反对
Linux创始人Linus对加入STIBP后在某些负载下性能下降高达50%非常不满,他认为一个安全补丁带来那么大的性能下降,就应该考虑STIBP补丁值不值得打,Linus认为应该默认保证性能,言下之意就是他不赞成打STIBP补丁。
STIBP现状
目前STIBP已经在改进了,改进的STIBP妥协式补丁打法会被公布,以便找到最优的处理策略,新版本的STIBP只会默认只应用于SECCOMP线程与通过prctl()请求它的进程,同时可以通过Linux改该设定。如果是这样的话,那么使用Linux Kernel 4.20或者是Linux Kernel 4.19都不会产生性能下降明显的情况。
相关主题