我正在尝试使用 perf 在我的机器上测量某些事件,包括 L1-dcache-stores,与内核 3.10.0-1127 的相对较旧的 CentOS 7 相比,它具有相对较新的处理器 i9-10900K
问题是 perf 报告 L1-dcache-stores 以及其他一些事件在我运行时不受支持perf stat -e L1-dcache-stores
,所以我不能使用它,至少以我知道的直接方式。然而,在内核为 4.18.0-193 的 CentOS 8 下,perf 在同一台机器上可以正常工作。所以,我怀疑这是因为旧内核不知道如何处理太新处理器上的某些性能计数器,而 perf 本质上是内核的一部分。
我该怎么做才能在 CentOS 7 系统上使用 perf 并让 L1-dcache-stores 之类的东西在我的处理器上正常工作?我不能只从 CentOS 8 获取 perf 二进制文件并在 CentOS 7 上使用它,因为 glibc 版本不同。
$ sudo perf stat -e L1-dcache-stores echo
Performance counter stats for 'echo':
<not supported> L1-dcache-stores
0.000486304 seconds time elapsed
0.000389000 seconds user
0.000000000 seconds sys