【发布时间】:2012-06-06 22:44:35
【问题描述】:
我一直在做 KVM 的工作,有几个问题想不通。
1> 正如我们所知,通常外部中断会导致 VMexit,如果是用于来宾,管理程序将注入虚拟中断。那么将注入哪个 irq(我的意思是用于索引来宾 IDT 的中断向量)? KVM 如何知道这一点(将主机 IRQ 与来宾虚拟 IRQ 关联)?
2> 如果分配给来宾的设备,管理程序会将该 IRQ 传递给来宾。通过跟踪代码,我发现主机 IRQ 与来宾的不同(我的意思是中断向量)。 KVM如何配置guest应该使用哪个中断向量?
3> 如果我们通过在 VMCS 中设置一些字段来配置不退出外部中断,那么在物理中断期间会发生什么? CPU会使用guest IDT来响应中断吗?如果是这样,KVM 是否可以重定向 CPU 以使用另一个 IDT 作为 guest(假设修改 IDTR)?
4> 访客 IDT 位于何处?这是在初始化 vcpu 和寄存器(包括 IDTR)时由 qemu 配置的吗?
我真的希望有人能回答我的问题。我将不胜感激。
谢谢
【问题讨论】:
标签: linux-kernel virtualization qemu kvm