如何解释 perf -e 缓存未命中:pp?

如何解释 perf -e 缓存未命中:pp?

我发现这种行为perf top -e cache-misses:pp -p <my_pid>很令人困惑。我拥有一台 Intel i5-3230M,运行内核 4.4.5 64 位。

如果我只是运行该命令,我基本上不会从我的应用程序中获得任何样本(具有大型数据集的数值模拟,因此它肯定必须显示缓存未命中),但几乎只能从一些内核函数中获得样本,例如intel_pmu_lbr_enable_allnative_write_msr_safenative_read_msr_safe__intel_pmu_lbr_disable。如果我使用 限制对用户空间的点击-K,我只会在我的应用程序中获得点击,但数量非常低。如果我删除“精确”( p) 修饰符,我会得到更多的命中,但来自操作码的命中显然不会导致内存加载/写入。

我该如何解释这种行为?到底什么才算是“缓存未命中”?

相关内容