1

我目前能够从用户空间读取最后一级缓存未命中和引用的硬件计数器,wrmsr用于选择它们然后rdpmc读取它们。

然而,虽然一些未命中是非常明显的引用,我不会命中缓存,但其他的则更加微妙,有时会在多次执行相同的代码路径(订购 100,000 次)时四处移动。

我怀疑其中一些未命中是由于硬件预取引起的,因此我通过 BIOS 禁用了硬件预取器,但我仍然遇到滑动缓存未命中,原因很难确定。

Linux 内核或 Intel 的寄存器中是否有某种能力来确定导致最近的最后一级缓存未命中的指令的地址?

如果它有用,我正在2.6.32-279.el6.x86_64运行Intel Xeon X3470.

4

0 回答 0