EPT & VPID

虚拟化场景下,Guest有页表,Host也有页表,系统要完成Guest虚拟地址到host物理地址的转换


GVA -> GPA -> HPA


该转换可以通过影子页表完成;VT-x提供EPT,通过硬件做这个事情,EPT也提供TLB,但是在VM-Entry、VM-Exit时会被强制刷新,因为硬件无法区分TLB的属主。为了提高TLB效率,引入VPID,在TLB的表项里添加了个标志来标识不同的VCPU的地址空间,在标识TLB里面的项属于哪个VCPU,这样就可以提高TLB的命中率。


参考《系统虚拟化-原理与实现》 图5-13


EPT和影子页表的简单示意图:

http://people.cs.nctu.edu.tw/~chenwj/slide/QEMU/KVM-mmu.txt


kvm代码分析:

http://zhongshugu.wordpress.com/2010/06/17/ept-in-kvm/


Intel slides:

http://www.linux-kvm.org/wiki/images/c/c7/KvmForum2008$kdf2008_11.pdf


你可能感兴趣的:(系统虚拟化)