首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当发生EPT违规时TLB缓存失效?

当发生EPT违规时TLB缓存失效?
EN

Stack Overflow用户
提问于 2021-12-01 06:01:51
回答 1查看 105关注 0票数 2

我目前正在开发一个管理程序特性。

当EPT违规发生时,我对如何处理TLB失效感到困惑

我正在Linux上开发,使用的是i7处理器。我的实施:

每个EPT条目的写入访问被清除(读取和执行访问被设置),如果发生Enabled

  • Initially,冲突(当试图写入),设置写访问并更改条目以指向另一个页面(另一个hpa)

根据英特尔手册,

“EPT违犯使所有将用于翻译导致EPT违规的来宾物理地址的来宾物理映射(与当前EP4TA相关联)无效,并且也使任何组合映射无效”。

我被这部分搞混了。

它是否确保EPT违规不仅在当前内核的TLB缓存中,而且在其他内核的TLB缓存中,都使相应的TLB条目无效?

如果是这样的话,是否可以只设置写访问和分配新的hpa而不需要tlb射击?

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 05:24:43

我认为您需要担心清除其他核心的TLB缓存。

如果您阅读上面引用的Intel手册部分,您会发现这一段适用于一个单一的逻辑核心:

27.3.3使缓存的翻译信息无效

寻呼结构的软件修改(包括EPT寻呼结构和用于定位SPP向量的数据结构)可能导致这些结构与逻辑处理器缓存的映射之间的不一致。某些操作使逻辑处理器缓存的信息失效,并可用于消除这种不一致。

27.3.3.1使缓存映射无效的操作

下列操作使缓存的映射无效,如下所示:

在体系结构上使TLB或分页结构缓存中的条目无效的操作(例如,INVLPG和INVPCID指令)使线性映射和组合映射无效。1它们只需要针对当前的VPID (但是,对于组合映射,所有EP4TAs)。即使EPT正在使用,当前VPID的线性映射也是无效的。2当前VPID的组合映射无效,即使EPT不在使用。

EPT违规会使将用于翻译导致违反EPT的来宾物理地址的任何来宾-物理映射(与当前EP4TA关联)无效。如果该来宾物理地址是线性地址的转换,则EPT冲突还会使与当前PCID、当前VPID和当前EP4TA相关联的线性地址的任何组合映射无效。

如果“启用VPID”VM -执行控制为0,则VM条目和VM退出使与VPID 0000H关联的线性映射和组合映射无效(对于所有PCID)。对于所有EP4TAs,VPID 0000H的组合映射无效。

..。

我使用的SDM订单号为325384-075US,于2021年6月发布。

此外,我认为如果EPT违规为您处理TLB射击,这将是非常低效的,或者英特尔应该为传统的TLB射击提供硬件支持(即与虚拟机无关的TLB射击)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70179745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档