Linux Kernel 4.20 修正了 Intel CPU 的多個 Bug,卻造成 CPU 效能嚴重下跌,某些效能甚至跌 30%。
- 新聞與速度測試圖片可見此篇原文:Bisected: The Unfortunate Reason Linux 4.20 Is Running Slower
Linux Kernel 4.20 修正 Intel CPU Bug 造成的效能影響
之前看到 Intel CPU Spectre / Meltdown 的問題,沒有看到有什麼解法。
對此問題研究不深,先看看此篇新聞的討論,實際的情況等用得到再來研究。
下述整理自此篇:Spectre 變種2 的修補程式拖慢效能又讓 Linux 之父不開心了!
Torvalds 的對於此 漏洞修補 與 效能影響 的想法
- Torvalds 認為英特爾宣稱 Spectre 漏洞的修補程式穩定性,但卻沒有討論它對效能的影響,當效能大幅下滑時,還不如直接關閉SMT。
- Torvalds 認為對於L1TF漏洞修補程式也是一樣邏輯:不會影響效能的東西才能變成預設。
Linux 4.20 效能影響
- 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 更新到最新微程式碼。
- Intel 因應 Spectre 變種2 提供的3種緩解方案:
- STIBP :專門防護具備 Hyper Threading (英特爾版的 Simultaneous MultiThreading, SMT) 功能的Intel CPU
- IBRS (Indirect Branch Restricted Speculation)
- IBPB (Indirect Branch Predictor Barrier)