Linux 6.2-rc6 は、AMD Secure Encrypted Virtualization Secure Nested Paging (SEV-SNP) コードの最新の「修正」であり、最新の Linux ホストが SEV を備えた最新の Linux ホストでデバッグが困難な問題を伴う未定義の動作の可能性のある状況を回避します。-SNP は、古いカーネルを使用して Linux 仮想マシンを起動しようとする場合があります。
一部の AMD SEV-SNP 機能は正しく動作するためにゲスト側のサポートが必要です。そのため、最新の AMD EPYC CPU の新しい機能をサポートする最新のカーネルを搭載した最新の Linux ホストが、一部の機能をサポートしていないカーネルを使用してゲスト仮想マシンを起動しようとすると、 SEV 機能には、問題が発生する可能性があります。診断が必ずしも簡単ではない問題です。驚いたことに、メインラインの Linux カーネルが SEV-SNP ゲスト機能のネゴシエーション サポートを受け取り、ホスト/ハイパーバイザーがゲスト VM で見つかったものよりも新しいカーネルを持っている可能性に対処するのに、昨日までかかりました。
この SEV-SNP ゲスト機能ネゴシエーション サポートを追加するパッチから:
“ハイパーバイザーは、さまざまな新機能 (SEV_FEATURES[1:63]) を有効にして、SNP を開始できます。ゲスト. これらの機能の一部はゲスト側の実装が必要です. これらの機能のいずれかがゲスト側の実装なしで有効になっている場合, SNP ゲストの動作は未定義です. SNP ゲストのブートは、デバッグを困難にする明白でない方法で失敗する可能性があります..
ゲストが続行できるようにして後でランダムに失敗させるのではなく、これを早期に検出して適切に失敗させます。
SEV_STATUS MSR は、ハイパーバイザーが有効にした機能を示します。起動中に、SNP ゲストは、有効なすべての機能にゲスト側の実装があることを確認する必要があります。機能が実装されていない場合ゲストでは、ゲストは GHCB プロトコルの非自動終了 (NAE) 終了要求イベントで起動を終了します。ハイパーバイザーがユーザーに簡単に報告できる、サポートされていない機能のマスクを備えた ITINFO2。”
これは修正として扱われているため、Linux 6.2-rc6 ではなく、次のマージ ウィンドウ。また、すぐに安定した Linux カーネル シリーズにバックポートされる予定です。
昨日の x86/urgent プル リクエストは、「SEV-SNP パッチが少し大げさで、一見したところ、緊急の資料ではないかもしれませんが、その背後にある意図は、新しいハイパーバイザーで古いカーネルを起動するときに、古いカーネルがまだ知らない機能をサポートしているときに、正常に失敗することです。 SEV-SNP ゲストに、ハイパーバイザーによって有効にされた機能を明示的にチェックさせ、一部がゲストによってサポートされていない場合は、非自明でハードなエラーで失敗するのではなく、正常に失敗するようにします。-デバッグ方法。」