Guest VM-Exit问题分析:指令序列是否触发退出、触发指令及退出原因
问题解答
核心结论
会发生Guest VM-Exit。
具体分析
- 触发退出的指令:地址
0xda3da处的vmwrite %rax,%rdi指令 - 退出类型:属于VMX特权指令触发的VM Exit,在Intel VT-x架构中对应退出原因码13(
EXIT_REASON_VMWRITE) - 触发原因:
vmwrite是VMX根操作模式专属的虚拟化管理指令,仅运行在Hypervisor层的代码(处于VMX根模式)可以正常执行该指令。
当前代码运行在Guest操作系统的内核态(CPL0),Guest的所有运行状态都处于VMX非根操作模式,非根模式下执行任意VMX管理类指令(包括VMWRITE、VMREAD、VMLAUNCH等)都会无条件触发VM Exit,陷入Hypervisor进行处理。
其余指令均为通用运算、寄存器赋值、分支、普通栈操作指令,题干已确认内存页、页表配置均正常,不存在缺页、EPT违例、IO访问等其他触发VM Exit的场景,不会触发退出。
内容的提问来源于stack exchange,提问作者rish
相关产品推荐
相关产品推荐

