linux下perf工具的编译和使用

一、编译

1.1 源码路径

linux内核源码/tools/perf/

1.2 perf编译

cd 内核路径/tools/perf/
export ARCH=架构(arm,arm64,mips,risc-v等)
export CROSS_COMPILE=工具链前缀(aarch64-linux-gnu- , aarch64-none-linux-gnu- ,arm-linux-,arm-none-eabi- , arm-none-linux-gnueabi- 等)
make

二、配置依赖

2.1 内核设备树修改

修改设备树文件.dts ,增加pmu-xxx{
compatible = “兼容属性”;
};

pmu-a77{
compatible = “arm,cortex-a77-pmu”;
};
pmu-a76{
compatible = “arm,cortex-a76-pmu”;
};
pmu-a57{
compatible = “arm,cortex-a57-pmu”;
};
pmu-a55{
compatible = “arm,cortex-a55-pmu”;
};
pmu-riscv{
compatible = “riscv,base-pmu”;
};等

2.2 内核配置文件修改

CONFIG_ARM_PMU=y
CONFIG_PROFILING=y
CONFIG_PERF_EVENTS=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_64BIT=y ##如果为arm64位架构

三、使用举例

1. 使用perf工具分析进程对cpu的占用

<1> 将perf 和 库推到 设备目录如 data/perf下 或者 设备存储空间小时u盘挂载在机器的某个目录下;
<2> ./perf record -F 99 -p $(进程) -g – sleep 30 ,运行可能会提示 无法连接到库 ,将库的路径进行导出;
<3> 运行结束后生成 perf.data, 设备中运行 perf report -i perf.data -g > perf.log, perf script > perf.script ,拷贝perf.script到PC机;
<4> PC机运行 stackcollapse-perf.pl perf.script > perf.script.folded;
<5> PC机运行 flamegraph.pl perf.script.folded > aiq.svg , 用浏览器打开 *svg文件;
<6> stackcollapse-perf.pl 和 flamegraph.pl 通过 git clone https://github.com/brendangregg/FlameGraph 可以获取;

2. 使用perf工具用于其它方面调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值