请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】
文章目录
概述
PMU(Performance Monitor Unit)本来指的就是硬件上的性能监控计数器(counter)。
因为软件 trace 方法存在制约制约:
- 软件大部分是插桩法,对于没有插桩的地方缺乏监控;
- 软件使用 hrtimer 的采样法开销较大,而且不精确。所以使用硬件采样来trace是一个很好的补充。
Arm64 的 Hardware PMU 可以监控许多种事件:
- cpu-cycles
- instructions
- cache-references
- cache-misses
- branch-misses
- cache相关事件等等。
它的监控原理比较简单:每个CPU有几个 counter,Counter0 固定只能配置成 cpu-cycles,其他 counter 可以配置成支持的任意类型。当 counter 的计数达到我们配置的值后,产生中断,在中断中记录ELR/LR的值来找到被中断的地址(即被采样点),利用这样的周期性采样获取的信息,可以大致从统计学意义上分析性能,如代码热点和那些代码导致了那些event(如cache miss/TLB miss/branch mispredication)。
Cortex-A720 PMU Features
Cortex-A720 实现的 Performance Mo
本文详细介绍了Cortex-A720的PMU(Performance Monitor Unit)特性,包括其硬件事件监控、周期计数器、PMU快照功能以及中断处理。PMU支持多种事件计数,如cpu-cycles、instructions等,并可通过中断产生采样点进行性能分析。Cortex-A720 PMU包含4到20个64位事件计数器,通过配置寄存器选择和启用事件,当计数达到预设值时产生中断。
订阅专栏 解锁全文
1530

被折叠的 条评论
为什么被折叠?



