我试图了解当主机收到外部中断时虚拟化设置中会发生什么。例如,如果 VM 的
CPU-1
使用 vCPU-0
并且存在外部中断,则该主机 ISR 是否可以在 CPU-1
上运行,或者是否阻止所有主机中断在分配给 VM 的 CPU 上运行?如果可以,那么它是否会导致 VMExit
,如果是的话,如何从主机 ISR 运行到 VMExit ?这个问题解决了其中的一部分,但没有讨论我上面提到的路径,它假设发生VMExit,但我正在寻找导致它的步骤序列。
中断传送到的 CPU 由 IOMMU 中的中断重映射表和/或设备中编程的 MSI 控制。
当中断传递到CPU核心时,通常会导致VM退出。 VM 退出是由中断本身引起的,在调用任何中断处理程序之前。
由 VM 退出处理程序决定如何处理中断以及是否应调用主机 ISR。
称为发布中断的 VT-d 功能允许将中断直接传递到当前正在运行的 VCPU,而无需 VM 退出,如您链接的问题的答案中所述。