Memory management 扩展页表/嵌套分页:防止来宾PTE更新上的陷阱

Memory management 扩展页表/嵌套分页:防止来宾PTE更新上的陷阱,memory-management,virtualization,page-tables,Memory Management,Virtualization,Page Tables,所以我研究了Intel虚拟化扩展中的EPT。我知道,对于卷影页表,VMM必须对硬件可访问的卷影PT进行写保护,以便每当来宾尝试写入PT时,它都会捕获到VMM。这种基于软件的页表管理是一个巨大的开销,应该通过EPTs/嵌套分页来解决 但是嵌套分页如何解决这个问题呢?在这种情况下,我们有两种不同的翻译:Guest VA到Guest PA(即主机VA)和host VA到主机(机器)PA。据称,Guest管理的页面表的Guest更新不需要陷阱。这是不连贯的:如果客户更改了GVA->GPA映射,那么新的G

所以我研究了Intel虚拟化扩展中的EPT。我知道,对于卷影页表,VMM必须对硬件可访问的卷影PT进行写保护,以便每当来宾尝试写入PT时,它都会捕获到VMM。这种基于软件的页表管理是一个巨大的开销,应该通过EPTs/嵌套分页来解决

但是嵌套分页如何解决这个问题呢?在这种情况下,我们有两种不同的翻译:Guest VA到Guest PA(即主机VA)和host VA到主机(机器)PA。据称,Guest管理的页面表的Guest更新不需要陷阱。这是不连贯的:如果客户更改了GVA->GPA映射,那么新的GPA映射不也应该反映在HVA中吗?换句话说,来宾管理的页表中的每个更改不也应该反映在VMM管理的页表中吗?我们似乎也有同样的问题。EPT的引入解决了什么问题


谢谢。

所以我必须在带回家的考试中找出这个。事实证明,这实际上是一个非常小的细节:当一个新VM被实例化时,主机CR3指针指向的页表被加载了一整套来宾物理->主机物理地址映射;i、 例如,由于这些映射是静态/静态的,因此在VM运行时不需要动态更新它们

i、 例如,由于这些映射是静态/静态的,因此在VM运行时不需要动态更新它们

不确定,但:可能发生的是,GP页面不存在EPT映射(从GPA->HPA)。在这种情况下,VMM将触发并处理EPT冲突/错误配置VM出口。它负责VMM分配主机物理页并为映射设置相关的EPT条目