ときは、もはやAMDのページテーブルの拡張機能でASIDは有効でしょうか?
-
11-09-2019 - |
質問
IA-32 CPU全体のTLBを無効得る様々なケースを定義します。 AMDはOpteronプロセッサのRev Fプロセッサ(バルセロナ?)特定のASIDの唯一のTLBエントリが無効とされている場合があるにリリースASID拡張子で始まります。
質問は、ASIDこれまで自身が有効であることを停止しますか?ハイパーバイザは、それを使用する前に、ASIDが有効であることを確認する必要がありますか?
解決
I のだと思う。の答えが '直接的ではない' です - AMDシステムのプログラミングを見て<のhref = "http://support.amd.com/us/Processor_TechDocs/24593.pdf" のrel =「nofollowをnoreferrer」> VM制御ブロックで指定する、ASIDフィールドは単にハイパーバイザは、VMの各インスタンスに対して一意の値に設定し、追加として使用されている(最大)32ビットIDでありますTLB検索タグます。
あなたは、x86上のTLBの内容の上に直接制御を持っていないので、あなたはTLBで終わるエントリ内容を制御することはできません。- プロセッサがTLBにエントリを追加することを決定した場合、エントリが現在のASIDでタグ付けされます追加したときに、定義により、これが有効になります。
これはセクションに多少迂回方法に記載されている 15.15.1 前述のシステム・プログラミング・スペック
選択効果的に全体のTLBまで、古いASIDを、ゲストのための新しいASIDを割り当て、再使用しないことで、ゲストのTLBエントリをフラッシュも指定された単一のASID、ソフトウェアのすべての翻訳をフラッシュする方法を提供していない実装ではされていますフラッシュ少なくとも一度ます。
これは、プロセッサが有効か無効のASIDの概念がないことを意味 - それは、その現在の値TLBがヒットするためにTLBエントリASIDと一致する必要がありますだけの数です。それはそれを再利用する前に、ハイパーバイザが正しくASIDをフラッシュしていない場合はそのため、あなたは古いTLBヒット取得します。