1

私の質問は割り込みに関するもので、ゲストが KVM で実行されている場合、それらはどのように処理されるのですか?

kvm が vmentry または vmresume を呼び出すと、ゲスト コードが実行を開始するとします。これで、タイマー割り込みなどの外部割り込みが発生すると、ゲストは vmexit を引き起こします。Vmexit の後、kvm の次の命令が実行されるか、ホスト割り込み呼び出し元が呼び出されます。kvm の次の命令が呼び出された場合、kvm は必要なことを何でも実行してから、適切なホスト割り込みハンドラーを呼び出すことができます。

ありがとう、

4

1 に答える 1

3

Intel VT-x では、すべての割り込みがホスト オペレーティング システムへのトラップを引き起こします。次に、ホストは割り込みが次のいずれかであるかどうかを判断します。

  • それ自体の場合 (この場合、KVM はそれを処理するため、KVM がかなりの時間スケジュールされていない可能性があります)。また

  • ゲストの場合、割り込みについて KVM に通知します。次に、KVM が割り込みをゲストに挿入します。(KVM のこの部分はカーネル モードで実行されることに注意してください。ただし、これを KVM と見なすこともあると思います)。

いずれの場合も、ホスト オペレーティング システムが最初に制御を取得します。

多少関係はありませんが、仮想化担当者を喜ばせる VT-x の拡張機能の 1 つは、特定の割り込みをゲストに直接送信して、ホストへのトラップ (および関連するパフォーマンスの低下) を完全に回避できる場合です。残念ながら、これはまだカードに載っていないようです。

于 2011-02-01T11:54:15.860 に答える