Spectre緩解降低了Linux 4.20的性能

英特爾對Specter Variant 2芯片缺陷(CVE- 2017-5715)的一個修復似乎已經對最新Linux內核的性能造成了很大影響。

有問題的緩解是單線程間接分支預測器(STIBP),這是英特爾在1月份公佈Meltdown和Spectre漏洞細節後不久提出的三個預測因子之一。

Spectre緩解降低了Linux 4.20的性能

4.20中正式實施,Phoronix運行的基準測試表明,使用英特爾專有的超線程技術(主要是Core i3s和Core i7及更高版本)運行英特爾芯片需要付出沉重的代價。

根據應用程序的不同,在頂級Core i9上可能會有30%到50%的任何影響,這顯然是不可接受的打擊 - 這還不包括之前對Spectre和Meltdown的緩解造成的較小損失。

當這些缺陷在1月份公佈時,性能下降總是存在,但是大家普遍認為,對於大多數用戶而言,這可能會在幾個百分點左右。

從那時起不到一年,運行4.20(和4.19.2,顯然支持STIBP)的任何人都將面臨更糟糕的情況。

因此,如果Linus Torvalds沒有看一看數據,並提出一個激進的建議——禁用英特爾的STIBP緩解措施——那麼這個問題可能會在不幸的情況下反彈。

Linus Torvalds用他改良過的不罵人的風格寫道:

當某些負載的性能下降了50%時,人們需要開始問自己這樣做是否值得。顯然,完全禁用SMT更好,這正是安全意識強的人所做的。

SMT——同步多線程——是英特爾所謂超線程的技術術語。

有趣的是,Intel最近對超線程失去了興趣,超線程早在2002年就被引入了,作為一種神奇的方法,可以將一個執行一個線程的內核變成兩個運行兩個線程的虛擬內核。

直到現在,我們才清楚,這為側通道攻擊提供了一個理論上的機會,在這種攻擊中,一個線程可以監視運行在相同物理內核上的另一個線程的內容,這一點在最近的PortSmash超級線程漏洞中得到了強調。

這給用戶帶來了什麼?

對於Linux,如果Torvalds有他自己的方式,那麼在這種情況下,它將選擇性能而不是安全性,並讓用戶在需要時啟用幽靈緩解功能。當然,他說的並不完全是這樣:

我認為我們應該使用與L1TF相同的邏輯:我們默認使用不會破壞性能的東西。警告一次,讓那些瘋狂的人說:“我寧願損失50%的性能,也不願為一個理論問題操心”。

對於Windows 10,微軟認為它已經用谷歌最初的Retpoline補丁控制了Specter Variant 2。


分享到:


相關文章: