intel手册-vmexit

25.1.1 Relative Priority of Faults and VM Exits
For example, execution of RDMSR with CPL = 3 generates a general-protection exception and not a VM exit 有些指令可能会产生一般性的异常,而不是vm exit(所以我们完全可以搞一个虚拟机内核,然后搞死主机? 可能不一定,它可能只是让虚拟机蓝屏之类的)

25.1.2 Instructions That Cause VM Exits Unconditionally
cpuid,INVD,还有虚拟化vmcs操作指令(嵌套虚拟化)。

25.1.3 Instructions That Cause VM Exits Conditionally
HLT,MONITOR ,MWAIT,IO指令(可以通过io bitmap控制),INVLPG (清除TLB表项),INVPCID (大概是清除某一个进程相关的tlb把),CR0,3,8,PAUSE(在spinlock代码序列中加入这个指令可能会带来性能的提升,PAUSE指令提醒处理器不要做指令重排和缓存操作,还能带来功耗的下降)、RDMSR、RDTSC 、RDTSCP、VMREAD、VMWRITE(嵌套虚拟化)、WBINVD(回写并让TLB无效)等。

25.2 OTHER CAUSES OF VM EXITS
1. 异常,异常并不一定导致退出,像pagefault,INT3。这些是可设置的。

2. 外部中断:外部中断可以设置成直接透传给虚拟机。(但是可以设置某一部分外部中断直传给虚拟化吗)

3. task switch:必然导致退出到root模式(不过似乎没有看到相应的代码)

4. preemption timer

25.3
mwait,可以控制它退出或不退出。

RDMSR

RDTSC

 

 

posted @ 2019-01-01 17:06  你的KPI完成了吗  阅读(368)  评论(0)    收藏  举报