私はKVMのことをやっていて、理解できない質問がいくつかあります.
1> 私たちが知っているように、通常、外部割り込みは VMexit を引き起こし、ハイパーバイザーはゲスト用の場合は仮想割り込みを挿入します。では、どの irq が注入されるのでしょうか (つまり、ゲスト IDT にインデックスを付けるための割り込みベクトルを意味します)? KVM はどのようにしてこれを認識しますか (ホスト IRQ をゲスト仮想 IRQ に関連付ける)?
2> ゲストに割り当てられたデバイスの場合、ハイパーバイザーはその IRQ をゲストに配信します。コードをトレースすると、ホストの IRQ がゲストの IRQ と異なることがわかりました (割り込みベクトルを意味します)。ゲストが使用する割り込みベクトルを KVM がどのように構成するか?
3> VMCS でいくつかのフィールドを設定して、外部割り込みで終了しないように構成すると、物理的な割り込み中に何が起こりますか? CPU は応答割り込みにゲスト IDT を使用しますか? その場合、KVM は CPU をリダイレクトして、ゲスト用に別の IDT を使用できますか (IDTR を変更すると仮定)?
4> ゲスト IDT はどこにありますか? これは、vcpu とレジスタ (IDTR を含む) の初期化中に qemu によって構成されますか?
誰かが私の質問に答えてくれることを心から願っています。私は非常に感謝します。
ありがとう