对于使用Intel VT-x的VMM,为什么有人会想将VMCS中的外部中断退出位设置为0,而不是使用发布的中断(假设架构同时支持这两者)?
例如,如果将外部中断退出位设置为0,则如果来宾正在运行,则发往主机OS的中断现在将传递给来宾OS。如果客户也使用相同的中断向量,将如何处理?此问题与发布的中断处理无关。
答案 0 :(得分:2)
设计使用VMX的VMM有很多不同的方法。从术语“主机操作系统”的使用看来,您可能正在考虑一种特定的VMM架构。
由于外部中断退出控件位于VMCS中,因此VMM可以为每个VM进行不同的设置。如果存在主机OS和来宾OS,则VMM一定会在来宾的VMCS中将外部中断退出控制设置为1,但在主机OS的VMCS中可以将其设置为0。 (在某些VMM设计中,主机OS在VMX根模式下运行或在关闭VMX的情况下运行,因此这并不适用;但是在某些VMM中,主机OS(也称为服务OS,根分区或Dom0)在操作系统中运行。 VM。)
关于为什么VMM可以这样做而不是设置流程发布的中断控制的原因,有以下几种可能的原因: