• 正文
    • openwrt的配置增加perf
    • perf命令测试
    • 结语
  • 相关推荐
申请入驻 产业图谱

openwrt开发使用-增加perf

03/01 10:19
459
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

perf性能工具写的文章也有几篇了,这里就不多做介绍了,有兴趣的朋友可以看我之前的几篇文章:《perf性能分析工具使用分享》。今天分享的内容是openwrt里面增加perf,因为默认是没有的。

欢迎关注微信公众号:羽林君,或者添加作者个人微信:become_me

openwrt的配置增加perf

首先使用 / 进入搜索perf关键词,默认如下:

接下来我们开始一个个分析,看哪些是我们需要的:

第一个是KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE 是控制编译优化的

第二个是 KERNEL_CGROUP_PERF

第三个是KERNEL_PERF_EVENTS 支持内存支持perf的events捕获

第四个是KERNEL_RPI_AXIPERF Prompt: Compile the kernel with RaspberryPi AXI Performance monitors 使用 RaspberryPi AXI 性能监视器编译内核

    第五个是PACKAGE_perf 是可以支持使用的perf工具

从上面搜索的内容来看,第二个、第三个、第五个应该是我们需要的 ,尤其是第五个,

但是当我们打开第五个位置时候:

发现是没有perf选项的,所以我们需要设置它的依赖选项,才能在第五项出现perf

先按照第二项和第三项配置:

设置以下两个选项:

Compile the kernel with performance events and counters

Compile the kernel with profiling enabled

这个时候第五项出现了perf,我们就可以选中perf

make 编译

拷贝新编译的固件到设备

重启后发现perf命令可以出现了

perf命令测试

perf top -p (进程pid) -K -g 执行如下:perf top -p 2184 -K -g

看不到函数名字是因为除了应用程序要加-g 参数编译之后,像libc.so,等等库也要加-g参数编译,openwrt默认是把库strip了,自己写的程序,可以自己写makefile加-g编译,像这些libc.so这些库的话,因为openwrt编译过程,会把libc.so保留一个没有strip的,所以直接编译完固件之后
在固件源码处find xxx -iname libc.so,把没有strip的库用winwscp工具,传到mt7688的/lib/下面(记录是以覆盖的方式,不要删除libc.so,再拷贝),再次使用perf工具,就能看到libc.so的函数名了,其它库也一样

再使用perf top

结语

这就是我自己在openwrt增加perf使用分享。如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。


作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

一个程序员,喜欢写文章,还喜欢打篮球,也喜欢吉他钢琴的驳杂之人。日常更新自己,分享包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,公众号内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!