https://stackoverflow.com/questions/48089426/what-is-a-retpoline-and-how-does-it-work
Spectre Variant 2 (間接分岐推測) 脆弱性の軽減を制御します。基本操作は、ユーザー空間攻撃からカーネルを保護します。
spectre_v2= on - unconditionally enable, implies spectre_v2_user=on off - unconditionally disable, implies spectre_v2_user=off auto - kernel detects whether your CPU model is vulnerable Selecting 'on' will, and 'auto' may, choose a mitigation method at run time according to the CPU, the available microcode, the setting of the CONFIG_RETPOLINE configuration option, and the compiler with which the kernel was built. Selecting 'on' will also enable the mitigation against user space to user space task attacks. Selecting 'off' will disable both the kernel and the user space protections. Specific mitigations can also be selected manually: retpoline - replace indirect branches retpoline,generic - google's original retpoline retpoline,amd - AMD-specific minimal thunk Not specifying this option is equivalent to spectre_v2=auto.
たとえば、HPCおよび制御された環境で最適なコンピューティングパフォーマンスを得るために(a)この攻撃を実行することができ(ログインに十分な問題がある)、(b)そのようなタスクを実行できるユーザーはいません。とにかく feat から何の利点も得られないでしょう。このカーネルパラメータをoffに設定する必要がありますか?これはIntel LGA 3647 Platinum 8xxxシリーズCPUを搭載したサーバー上にあり、RHEL 7.9がインストールされると自動的に実行されますGRUB_CMDLINE_LINUX= sceptre_v2=retpoline
。
ベストアンサー1
はい。ボーダーコントロールに自信があり、リスクとパフォーマンスへの影響を喜んで受け入れる意思がある場合は、spectre_v2=off
スペクター/メルトダウンの軽減を有効にしないように設定できます。整合性を確保するために、次のクイックスクリプトを使用できます。
#!/bin/bash
#Works in RHEL7; does not work in RHEL8
items="pti_enabled retp_enabled ibrs_enabled"
DIR=/sys/kernel/debug/x86
echo "These should all be 0:"
for item in $items; do
printf "%-13s " $item: ; cat $DIR/$item;
done
need_to_set=false
for item in $items; do
grep -q 0 $DIR/$item || { echo "$item is not 0"; need_to_set=true; }
done
$need_to_set && {
read -p "Found value(s) that are not 0. Enter 'y' if you want 0 them: " a
[ "$a" = "y" ] && {
for item in $items; do
echo 0 > $DIR/$item
done
echo Done.
exit 0
}
echo "OK, will not set it to 0."
}
...もちろんリブートするまで、軽減機能は無効になります。提案されているように、カーネルコマンドラインを変更することがこれに固執する方法です。
ちなみに、これはRHEL 7.9ベースです。私はコマンドラインオプションが8で同じだと思いますが、確認方法が異なります。