次期「Linux 4.20」のパフォーマンス劣化の大きな原因は、Spectre variant 2(Spectre v2)の緩和策にあることがわかった。Linuxの生みの親であるLinus Torvalds氏は緩和策を制限したいと思っている。
LinuxニュースサイトのPhoronixが記しているように、パフォーマンスの急な劣化は「Single Thread Indirect Branch Predictors(STIBP)」と言われるSpecter v2の緩和策を新たに実装したためだという。STIBPは、最新のマイクロコードを持つIntel上のLinux 4.20でデフォルトで有効となる。
STIBPは、IntelがSpectre v2を悪用した攻撃を防ぐために行ったファームウェアアップデートで加わったものだ。IntelはSTIBPのほか、「Indirect Branch Restricted Speculation(IBRS)」「Indirect Branch Predictor Barrier(IBPB)」も導入しており、OS開発企業はこれらを有効にしてエンドユーザーに提供できる。
STIBPは、 Intelの同時マルチスレッディング(SMT)技術である「ハイパースレッディング・テクノロジー」が有効となったCPUに対する攻撃を防ぐためのものだ。
STIPBが有効になったLinux 4.20をPhoronixがベンチマークしたところ、一部のアプリケーションワークロードの緩和策がパフォーマンスに大きな影響を与えていることがわかった。Xeon Goldを搭載したハイエンドのサーバでも、STIPBを有効にした場合のPhoronixのベンチマークでは、最速のサーバだったはずが、性能で劣るAMDのEPYCベースのサーバよりも遅くなっているのが観測された。
このような性能への影響から、Torvalds氏は11月18日、メーリングリストでSTIBPをデフォルトで有効にしないように求めた。あわせて、セキュリティを本当に気にする人はSMTを完全に無効にする選択肢があり、こちらのほうがセキュリティ上は良い選択肢であることを指摘している。
11月に入り、ハイパースレッディング・テクノロジーをサポートするすべてのIntel製CPUに影響する「PortSmash」脆弱性を発表した研究者は、「セキュリティとSMTは相容れない考え方だ」としており、SMTのあるチップを避けるようユーザーにアドバイスしている。
Torvalds氏はコードを完全に元に戻す必要はないが、STIPBが「無条件に」有効化される振る舞いを元に戻す必要があるとしている。
提供:Image: Aalto University/YouTube
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。