Linuxカーネルで「Retpoline」が有効になっているかどうかを確認する方法は?

Linuxカーネルで「Retpoline」が有効になっているかどうかを確認する方法は?

「Spectre」のセキュリティ脆弱性に対応して、リスク軽減ソリューションとして「Retpoline」がリリースされました。ところで、次の記事を読んでいます。

retpoline なしでカーネルをビルドする場合、CONFIG_RETPOLINEリトポリンを使用してモジュールをビルドしてからロードすることは期待できません。サンク記号がエクスポートされないためです。

リトポリンを使用してカーネルを構築すると、できるリトポリンで構築されていないモジュールを正常にロードします。 (源泉)

カーネルに「Retpoline」が有効になっていることを確認する簡単で一般的な/汎用/統合された方法はありますか?私のインストーラがインストールするカーネルモジュールの正しいバージョンを使用できるようにこれを実行したいと思います。

答え1

メインラインカーネルまたはほとんどの主要ディストリビューションのカーネルを使用している場合は、完全なリトポリンサポートを確認するための最良の方法は(つまりカーネルは、CONFIG_RETPOLINE次の目的でリトポリンをサポートするコンパイラで構成および構築されました/sys/devices/system/cpu/vulnerabilities/spectre_v2

$ cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Mitigation: Full generic retpoline, IBPB, IBRS_FW

systreeファイルなしでカーネルでリトポリンを検出するためのより包括的なテストが必要な場合は、spectre_v2方法を確認してください。spectre-meltdown-checker物事について話してください。

答え2

この特別なケースでは、リトポリンのサポートにも新しいコンパイラバージョンが必要なので、Stephen Kittの答えはより包括的です。

ただし、通常、ほとんどのディストリビューションは、次のいずれかの場所にカーネル構成ファイルを提供します。

  • /boot/config-4.xx.xx-...
  • /proc/config.gz

だとしたら簡単にできますzgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz

関連情報