潮声隔雨深 · 2020年02月14日

如何使用gator/streamline 收集PMU perf event计数

Hi, 我们通过gator可以收集到许多的event计数,然而gator可统计的event counter跟perf(linux性能剖析工具)的event counter有很大的区别。
以Armv7-Cortex-A9来讲,gator可以统计这些event counter:
Cache:Instruction refill
Cache:Inst TLB refill
Cache:Coherency miss
Cache:Prefetch hits
Cache:Prefetch linefills
Cache:TLB stall
Instruction:Load
Instruction:Store
PLE:Cache line rq completed
PLE:Request completed
Stalls:Inst main TLB miss
Stalls:Inst micro TLB miss ...

而perf可统计的event counter有: (包括hardware,software 和hardware-cache events)
instructions
cache-references
cache-misses
branch-instructions OR branches
branch-misses
stalled-cycles-frontend OR idle-cycles-frontend
stalled-cycles-backend OR idle-cycles-backend
page-faults OR faults
context-switches OR cs
cpu-migrations OR migrations
minor-faults
major-faults
alignment-faults
L1-dcache-loads
L1-dcache-load-misses
L1-dcache-stores
L1-dcache-store-misses
L1-icache-load-misses
dTLB-load-misses
dTLB-store-misses
iTLB-load-misses
branch-loads
branch-load-misses

那么我想请教下, gator的各个event 跟 perf的各个event 是否有存在匹配关系或对应关系?
如果不存在对应关系,那么我是否可以通过gator工具把perf event计数一并采集?可以的话,我就能看到能多的性能数据。

谢谢大家的回答!

1 个回答 得票排序 · 时间排序
一知半解 · 2020年02月14日

Armv7/8-A 架构支持 Performance Monitoring Unit

具体到 gatord 和 Linux perf 工具, 它们应该都是针对 Armv7/8-A hardware PMU event 进行了 mapping.

至于gatord 和 Linux perf 两者之间的PMU event 映射关系, 可能需要自己看一下代码整理一下。

两者可能有部分 PMU event 是对方没有支持的。

你的回答