Virtual machine 扩展页表(ept)

Virtual machine 扩展页表(ept),virtual-machine,x86-64,virtualization,page-tables,ept,Virtual Machine,X86 64,Virtualization,Page Tables,Ept,为什么我们不能得到GPA,然后直接计算实际的物理地址,如第8页上的所示?我们可以节省对内存的大量访问 为什么我们需要嵌套页面表的复杂计算,如第9页的同一链接所示 我不确定,但我的猜测是允许更多的寻址空间。如果虚拟机“拥有”4gb虚拟空间和4gb物理空间,那么如果我们使用第一种方法,我们只能在实际机器中获得4gb。但我认为我们可以克服它。我明白了! 每个表格都位于GPA中,因此,我们需要使用eptp中的表格漫游来转换它,以获得表格的PPA!,我们需要为每个表执行此操作,这就是为什么要进行长页面漫游

为什么我们不能得到GPA,然后直接计算实际的物理地址,如第8页上的所示?我们可以节省对内存的大量访问

为什么我们需要嵌套页面表的复杂计算,如第9页的同一链接所示

我不确定,但我的猜测是允许更多的寻址空间。如果虚拟机“拥有”4gb虚拟空间和4gb物理空间,那么如果我们使用第一种方法,我们只能在实际机器中获得4gb。但我认为我们可以克服它。

我明白了! 每个表格都位于GPA中,因此,我们需要使用eptp中的表格漫游来转换它,以获得表格的PPA!,我们需要为每个表执行此操作,这就是为什么要进行长页面漫游。
例如,PML4在GPA中,所以我们需要翻译它,等等。

您首先如何获得客户的实际地址?一般内存访问(可能是隐式的)上没有VM出口,如果这样做的话,我会比使用硬件遍历页表慢。我们需要更高的级别以使表稀疏并避免消耗大量内存。一般来说,在x86上,在任何模式下,内存访问的“中断”都不是一件小事。@MargaretBloom,我使用操作系统的正常页走获取来宾物理地址,这种方法有什么问题吗?1.使用操作系统的正常页走获取GPA 2.使用相同的页走计算PPA(虚拟地址是GPA)GPA到PA的映射由虚拟机监控程序处理,而不是由来宾操作系统处理