飞腾平台perf工具PMU事件集成指南

     【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png​​​​

本文分享至飞腾开发者平台《飞腾平台perf工具PMU事件集成指南》

1 软件介绍

  perf是内置于Linux-2.6+内核源码中的性能剖析工具。通过对各类性能事件的计数统计,以及在事件发生时对运行代码路径(调用栈)等进行采样记录,支持查找性能瓶颈、定位热点代码。perf支持的性能事件包括:硬件事件、软件事件、跟踪事件。其中,硬件事件由处理器实现的PMU(Performance Monitor Unit,性能监视单元)产生,探测各类与架构、微架构等相关性能事件发生的次数,例如cache-misses、cpu-cycles、instructions、branch-misses等。关于perf的更多信息可阅读参考文献【2】、【3】,关于PMU的更多信息可阅读参考文献【1】。

  如下表perf list查看事件名称所示,perf为常用的硬件事件提供了符号名称(又称“事件别名“”),可以通过“-e 事件名称”的方式指定进行统计或采用的事件。对于各厂商实现的未提供符号名称的硬件事件,可以通过原始硬件事件编号“rNNN”的方式进行指定,但是使用起来不够直观和便捷。

List of pre-defined events (to be used in -e):

 branch-misses                   [Hardware event]

 bus-cycles                      [Hardware event]

 cache-misses                    [Hardware event]

 ...

 L1-dcache-load-misses                [Hardware cache event]

 L1-dcache-loads                      [Hardware cache event]

 L1-icache-load-misses                [Hardware cache event]

 ...

 br_mis_pred OR armv8_pmuv3_0/br_mis_pred/     [Kernel PMU event]

 br_pred OR armv8_pmuv3_0/br_pred/             [Kernel PMU event]

 bus_access OR armv8_pmuv3_0/bus_access/       [Kernel PMU event]

 ...

 rNNN                                       [Raw hardware event descriptor]

 cpu/t1=v1[,t2=v2,t3 ...]/modifier          [Raw hardware event descriptor]

  本文档以飞腾FTC6xx系列核心实现的硬件事件为例,说明如何在Linux内核上为飞腾PMU硬件事件建立perf符号名称、实现自定义硬件事件集成的方法。

2 环境要求

2.1 硬件环境

  硬件环境要求如下表硬件环境所示。

项目 说明
CPU FTC66X系列核心(FT-2000/4、FT-2000+/64)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值