我一直在做KVM的东西,并有几个问题无法弄清楚。KVM如何处理中断
1>正如我们所知,通常情况下,外部中断将导致VMexit,并且管理程序将为虚拟中断注入虚拟中断。然后哪个irq将被注入(我的意思是索引guest IDT的中断向量)? KVM如何了解这一点(将主机IRQ与来宾虚拟IRQ相关联)?
2>如果将分配的设备分配给guest虚拟机,管理程序会将该IRQ传递给guest虚拟机。通过跟踪代码,我发现主机IRQ与客户的不同(我的意思是中断向量)。 KVM如何配置客人应使用哪个中断向量?
3>如果我们通过在VMCS中设置某个字段来配置不在外部中断上退出,那么在物理中断过程中会发生什么? CPU会使用来宾IDT作为响应中断吗?如果是这样,KVM是否可以重定向CPU来为guest虚拟机使用另一个IDT(假设修改IDTR)?
4>客人IDT位于哪里?它在初始化vcpu和寄存器(包括IDTR)时由qemu配置?
我真的很希望有人能回复我的问题。我将非常感激。
由于