1

图取自这里在此处输入图像描述

Q1。似乎EPT表保留了guest页表的完整副本,使其成为4级页表。那是对的吗?

Q2。是不是有点浪费空间?

Q3。究竟什么是 EPT 违规?这是否意味着:guest 正在尝试访问一个新的 guest 虚拟地址 (gVA),EPT 表还没有记录,所以它陷入 VMM,并将两个 gVA 和 gPA 条目添加到 EPT 表中。那是对的吗?

4

3 回答 3

1

EPT 将客户物理地址映射到主机物理地址。

在引入 EPT(对 GPA<-->HPA 的硬件支持)支持之前,Hypervisor 必须手动维护访客页面表映射条目的卷影副本。实际访客页面表中的PTE条目会降低access permissions,即如果它的实际权限是写,它会降低到读。这将导致page faultHypervisor 拦截。

Hypervisor 将依次更新相应的影子页表条目。这整个过程是狗屎慢。这就是引入 EPT 的原因,以便 GPA 到 HPA 的转换由硬件本身完成,速度更快。

所以现在回答你的第一个问题——它没有。如果你想在没有 EPT 支持的情况下虚拟化一个操作系统,除了来宾操作系统的页表之外,你仍然需要维护一个额外的影子页表结构。

Q3 -Guest Virtual Address(GVA)硬件通常通过遍历客户操作系统中的页表来转换,就像在本机硬件上运行的操作系统中所做的那样。一旦我们得到Guest Physical Address(GPA)这个翻译之后,EPT 就会出现。现在硬件转换GPA为真正知道HPA的地址。HPACPU

当 EPT 没有 aguest physical address(GPA)到的现有映射时,会发生 Ept 违规 VMExit host physical address(HPA)。这会导致 vmExit 到 VMM,然后将创建一个新映射。(Ept 违规与正常操作系统中的页面错误相同,唯一的区别是正在创建的映射类型。)

于 2015-08-21T00:06:09.800 回答
0

我的2美分,如果我记错了,请纠正我。

Q1:不,EPT 存储 GPA 到 HPA 的映射。使用 EPT,访客页表仅在访客中维护。

Q2:没有 EPT,VMM 应该改为维护影子页表。所以我不认为EPT浪费空间。

Q3:EPT 存储 GPA 到 HPA 的映射。在这种情况下,GPA 到 GVA 的映射在来宾中维护。

于 2015-05-05T05:36:40.530 回答
-1

我的小贡献,迟了一年……

Q1:是的,EPT 就像一个 mmu 转换树(4 级或更少),但它将 GPA 转换为 HPA(访客物理地址到主机物理地址)。

Q2:对于虚拟化,翻译树(shadow 或 EPT)是必要的,所以不浪费空间。硬件翻译比影子一(软件)更快,并防止 vmexit 减慢进程。

Q3: 是的,EPT 违规就像页面错误一样发生,但访问违规也会发生。EPT 允许对页面访问(读、写、执行)进行精细控制。

于 2016-05-23T14:59:14.710 回答