gpt4 book ai didi

linux - 使用 Intel PEBS 的 DTLB 未命中地址跟踪

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:13:40 25 4
gpt4 key购买 nike

我正在尝试通过使用硬件性能计数器来生成 D-TLB 未命中的地址跟踪。 Intel 处理器具有“基于事件的精确采样”(PEBS),可以在每次采样时转储硬件寄存器内容。我需要使用这个寄存器转储来创建导致 D-TLB 未命中的地址。但是,我不确定如何从寄存器转储中生成访问地址。

有没有人有做类似事情的经验,可以给我一些建议?

谢谢

阿尔卡

最佳答案

性能计数器基本上就是计数器,您需要它们不提供的额外信息。您需要的是一个能够捕获总线事务的跟踪器,这可能有点难以实现,并且仍然不完美,因为您只会捕获也错过了 STLB(二级 TLB)的未命中,加上 - 他们的页面步行阶段没有命中缓存,因此您可以有足够的可见性来重建虚拟地址。在我看来,你最好的选择是简单地通过二进制检测工具(例如 PIN 或 szim)运行你的代码,编写一个钩子(Hook)来捕获所有内存访问 - 然后通过模拟 DTLB 的回调运行它们(你可以使用几个 uarch 模拟器或者自己写一些简单的代码)。您只需要获取系统的基本 DTLB 详细信息(大小、关联性等)。这应该让您对真实系统上的 DTLB 丢失地址有一个相对接近的想法。当然,如果您使用混合大小的页面或虚拟化(上帝保佑..),这里可能会出现并发症

关于linux - 使用 Intel PEBS 的 DTLB 未命中地址跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com