Hi, 我们通过gator可以收集到许多的event计数,然而gator可统计的event counter跟perf(linux性能剖析工具)的event counter有很大的区别。以Armv7-Cortex-A9来讲,gator可以统计这些event counter:Cache:Instruction refillCache:Inst TLB refillCache:Coherency missCache:Prefetch hitsCache:Prefetch linefillsCache:TLB stallInstruction:LoadInstruction:StorePLE:Cache line rq completedPLE:Request completedStalls:Inst main TLB missStalls: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计数一并采集?可以的话,我就能看到能多的性能数据。
谢谢大家的回答!
Armv7/8-A 架构支持 Performance Monitoring Unit
- http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500d/BIIDADBH.html
具体到 gatord 和 Linux perf 工具, 它们应该都是针对 Armv7/8-A hardware PMU event 进行了 mapping.
至于gatord 和 Linux perf 两者之间的PMU event 映射关系, 可能需要自己看一下代码整理一下。
两者可能有部分 PMU event 是对方没有支持的。