X86 如何以及何时在VMCS主机状态区域中保存主机CPU状态?

X86 如何以及何时在VMCS主机状态区域中保存主机CPU状态?,x86,intel,virtualization,hypervisor,vt-x,X86,Intel,Virtualization,Hypervisor,Vt X,我试图了解英特尔VMX/VT-x的基本工作原理。在《英特尔软件开发人员手册》中,它对VMC作了如下描述: VMCS数据被组织成六个逻辑组: 客国区。处理器状态保存到来宾状态区域 在虚拟机上退出并从那里加载虚拟机条目。 主机状态区域。从上的主机状态区域加载处理器状态 VM退出。 对我来说,CPU状态保存到VM出口上的来宾区域并加载到VM条目上是有意义的。CPU状态从VM出口上的主机状态区域加载也是有意义的。。。但是CPU状态何时保存在主机状态区域?直觉上,我会说它保存在VM条目上,但手册没有这么

我试图了解英特尔VMX/VT-x的基本工作原理。在《英特尔软件开发人员手册》中,它对VMC作了如下描述:

VMCS数据被组织成六个逻辑组:
客国区。处理器状态保存到来宾状态区域 在虚拟机上退出并从那里加载虚拟机条目。
主机状态区域。从上的主机状态区域加载处理器状态 VM退出。

对我来说,CPU状态保存到VM出口上的来宾区域并加载到VM条目上是有意义的。CPU状态从VM出口上的主机状态区域加载也是有意义的。。。但是CPU状态何时保存在主机状态区域?直觉上,我会说它保存在VM条目上,但手册没有这么说。。。有人能帮我澄清一下吗


谢谢

CPU从不保存主机状态。
VMM(也称为虚拟机监控程序)控制何时执行
vmlaunch/vmresume
,因此可以在执行之前相应地设置主机状态区域

当虚拟机条目由于无效的VMCS而失败时,执行将进入
vmlaunch/vmresume
之后的下一条指令
当虚拟机条目由于无效的来宾状态而失败时,执行将从主机状态区域中设置的
RIP
恢复(就像虚拟机退出一样)。
如果CPU要设置主机状态区域,则这两种情况是相同的


这也是CPU在进入VMX非根模式(即启动VM)之前检查主机状态区域的原因。

CPU从不保存主机状态。
VMM(也称为虚拟机监控程序)控制何时执行
vmlaunch/vmresume
,因此可以在执行之前相应地设置主机状态区域

当虚拟机条目由于无效的VMCS而失败时,执行将进入
vmlaunch/vmresume
之后的下一条指令
当虚拟机条目由于无效的来宾状态而失败时,执行将从主机状态区域中设置的
RIP
恢复(就像虚拟机退出一样)。
如果CPU要设置主机状态区域,则这两种情况是相同的

这也是CPU在进入VMX非根模式(即启动VM)之前检查主机状态区域的原因