我想使用 perf 工具来获取二级缓存的未命中率。我知道如何获得 L1 和 LLC。
perf stat -e L1-dcache-loads,L1-dcache-load-misses,L1-dcache-stores command
perf stat -e LLC-loads,LLC-load-misses,LLC-stores,LLC-prefetches command
以上两条命令可以得到l1
和的未命中率llc
。但是当我使用时perf stat -e L2cache-loads, L2-cache-load-misses, L2-cache-stores command
,an event syntax error:'L2-cache-loads'
出现错误。
如何获取L2的未命中率?
当我用来perf stat -e L1-dcache-loads, L1-dcache-load-misses, L1-dcache-stores command
获取l1的未命中率时,结果是:
19,405,514,800 L1-dcache-loads (50.00%)
956,038 L1-dcache-load-misses # 0.00% of all L1-dcache hits (66.67%)
6,448,520,298 L1-dcache-stores (66.67%)
311,629 LLC-loads (66.67%)
174,237 LLC-load-misses # 55.91% of all LL-cache hits (66.67%)
72,755 LLC-stores (33.33%)
<not supported> LLC-prefetches
54.586246766 seconds time elapsed
右边的0.0%, 55.91%
和代表什么?(50.00%), (66.67%), (66.67%), (66.67%), (66.67%), and (33.33%)
答案1
我认为相关事件是l2_rqsts.all_demand_miss
。 (perf list
将向您显示所有可用的事件。)
从百分比来看,956,038 为 19,405,514,800 的 0.00%,174,237 为 311,629 的 55.91% —IE0% 的 L1 dcache 负载未命中,55.91% 的 LLC dcache 负载未命中。我不知道右边的百分比。