2

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

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

谢谢。

4

2 回答 2

1

即,由于这些映射是固定的/静态的,因此在 VM 运行时无需即时更新它们。

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

于 2016-12-15T10:59:49.040 回答
0

所以我不得不为我的带回家考试弄清楚这一点。原来这真的是一个非常小的细节:当一个新的VM被实例化时,Host CR3指针指向的页表被加载了一整套Guest Physical -> Host Physical地址映射;即,由于这些映射是固定的/静态的,因此在 VM 运行时无需即时更新它们。

于 2016-03-16T05:49:15.380 回答