本文共 1127 字,大约阅读时间需要 3 分钟。
aarch32 arm-linux-gnueabihf-gcc linux4.9
perf wiki:
perf 工具生成:
cd linux/tools/perf ./build.sh
perf 采集栈信息的linux支持
CONFIG_PERF_EVENTS=yCONFIG_HW_PERF_EVENTS=yCONFIG_SCHED_INFO=yCONFIG_SCHEDSTATS=yONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=yCONFIG_DEBUG_INFO=yCONFIG_FTRACE=y (enable debugfs tracing)
根据README
1.采集命令./perf record -F [sample freq] -p [pid] -g -- sleep [time]
ON-CPU:
perf record -F 99 -p 1140 -g -- sleep 60
OFF-CPU:
perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -p [pid] -g -o perf.data.raw sleep 10perf inject -v -s -i perf.data.raw -o perf.data
2.生成火焰图:
下载生成火焰图的脚本
perf script > out.perfstackcollapse-perf.pl out.perf > out.foldedflamegraph.pl out.folded > kernel.svg
3. 示例展示
ON-CPU
OFF-CPU
perf inject 出现error :failed to write feature BUILD_ID
./perf inject -b -v -s -i ./perf.data.raw -o ./perf.data
加-b参数(参见tools/perf/Documents/)后错误变成:Failed to open /proc/kcore. Note /proc/kcore requires CAP_SYS_RAWIO capability to access. Using /proc/kallsyms for symbols,这个错误可以忽略
发现有很多unknown symbol
转载地址:http://pxbji.baihongyu.com/