Spectre Variant 1および Meltdown にパッチを当てたチップは、ウイスキーレイクやアンバーレイクのように、Spectre Variant 2をどのように処理しますか?新しいラップトップを探しています。現在、Lenovox390を評価しています。 MeltdownとSpectreVariant1のハードウェアが修正されたと主張するWhiskyLakeに同梱される予定です。
大きなパフォーマンスマーカーはSpectre Variant 2に取り組んでいます。ソフトウェアで修正すると、Intelはワークロードに応じてパフォーマンスが3〜10%低下すると予想します–修正した場合ハードウェアでは、Intelはパフォーマンスの低下ははるかに少ないと述べていますが、新しいプラットフォーム(Cascade Lakeなど)がとにかく全体的なパフォーマンスを向上させることを期待しています。 WhiskyLakeもAmberLakeもv2の緩和策はありませんが、Whisky Lakeは確かに順調に進んでおり、v3やL1TFなどのより危険な攻撃のいくつかが修正されています。 Whisky Lakeは、プラットフォームも14 ++に対応しているため、パフォーマンスと消費電力に役立つ新しいパフォーマンスビンも提供しています。
だから私の質問は、新しいチップ(ウィスキーレイクとアンバーレイク)で、Spectre Variant 1とMeltdownを修正するだけでパフォーマンスが向上するかどうかですCPUの2/3の脆弱性に対するハードウェアパッチがあるという事実は、カーネルが利用できるハードウェアの何かを提供しますか?それとも、LinuxカーネルはSpectre Variant 2から保護するために、同じ不自由なソフトウェアの緩和策を適用しますか?
これはIntel中心の答えになります。
カーネルレベルでは、Spectre/Meltdownの緩和策は単一のモノリシックな塊ではありませんが、Spectre/Meltdownの各バリアントには独自の緩和策のセットがあることに注意してください。
Meltdownのカーネルレベルの軽減策は、ページテーブル分離と呼ばれます。カーネルはそれを単独で実行でき、パフォーマンスに大きな影響を与えます。
これは、プロセッサー+マイクロコードがプロセスコンテキストID(PCID)を提供する場合に役立ちます。さらに、プロセッサーでINVPCID命令が使用可能な場合はさらに役立ちます。特定のプロセッサモデル。 Linuxは、これらが利用可能であれば確かに使用でき、メルトダウン緩和のパフォーマンスへの影響を大幅に減らすことができます。
もちろん、最良の状況は、ページテーブルの分離がまったく必要ない場合であり、これは明らかに、メルトダウンの「ハードウェア」修正が意味するものです。
システムが十分に安全でパフォーマンスがより重要であると思われる場合は、メルトダウンフィックスをオフにするオプションがあります。
これは、パッチを適用することで軽減されますコンパイラ特定の状況でポインタをより注意深く処理し、パッチを適用したコンパイラを使用してカーネル(およびハイパーバイザー(存在する場合))とセキュリティが重要なバイナリを再構築します。これは行われました。コンパイルされたコードの主要な場所にいくつかの追加の命令が追加されるため、プログラムの実行が少し大きくなり、遅くなりますが、幸いなことに、通常、その違いはごくわずかです。
私が理解している限り、マイクロコードとプロセッサの設計はここではあまり機能しません。CascadeLakeでさえ、これに対するOS/VMMレベルの修正のみを示しています。
これはトリッキーなものであり、おそらく修正するのが最も難しいでしょう。真の修正にはCPU設計理論のレベルでの革新が必要だからです。
CPUハードウェア+マイクロコードの支援がなくても、カーネルはretpoline、つまりRETurn命令トランポリンを実装できます。これは、アセンブラレベルのプログラミング手法です。 Meltdown緩和策と同様に、これを実装するとシステムパフォーマンスから重要なチャンクが失われるため、セキュリティよりもパフォーマンスが必要であるというこの緩和策を無効にするオプションがあります。
CPU +マイクロコードは、カーネルのSpectreV2緩和を容易にするいくつかの新機能を再び提供できます。
Linuxカーネルは、必要に応じてこれらの機能を使用して、レトポリン技術によって引き起こされるパフォーマンスの低下を最小限に抑えることができます。