安装使用oprofile

来源:互联网 发布:游戏编程 培训机构 编辑:程序博客网 时间:2024/05/21 01:56
1)安装oprofile
依赖库:popt,bfd,liberty


#./configure --with-kernel=/usr/src/linux/ --with-kernel-support
#make
#make DESTDIR=`pwd`/_install install


如果不能编译,替换掉系统的库文件


2)内核支持OPROFILE,修改.config
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE=y
$make -j2 bzImage/uImage
$make INSTALL_PATH=`pwd`/_install install 




如果要编译ARM的内核,但是在X86环境make menuconfig,则会引入arch=x86的设置,建议直接修改.config
如果是X86平台,勾选Local APIC 和 IO-APIC




常见问题:
1)error:modules.dep (No such file or directory) 
#mkdir /lib/modules/`uname -r` && depmod -a 
2)mounting nodev on /dev/oprofile failde:device or resource busy
修改/etc/mtab
nodev /dev/oprofile oprofilefs rw
3) can't open '/dev/oprofile/cpu_type': No such file or directory
 mount -t oprofilefs nodev /dev/oprofile


3)用法
oprofile初始化
$ opcontrol --vmlinux=/boot/vmlinux-`uname -r`,监控内核及驱动模块
$ opcontrol --no-vmlinux,不监控内核及驱动模块


oprofile启动监控
$ opcontrol --start
$ opcontrol --start-daemon;opcontrol --start ,轻量级,减少启动守护进程对测试结果的影响


运行测试程序
$ ./test


oprofile停止监控
$ opcontrol --stop,停止监控
$ opcontrol --shutdown,停止监控,并结束监控进程
(监控的数据默认保存在/var/lib/oprofile/samples)


生成报表
$ opreport -l image:/bin/test


源码级分析
$ opannotate --source --output-dir=/tmp/output --search-dirs=/tmp --base-dirs=/home/xx/work/

编译时源文件绝对路径(/home/xx/work/optimize/test.c)
测试时实际文件路径/tmp/optimize
输出文件--output-dir + --search-dirs - base-dirs + 实际文件路径
/tmp/output/tmp/home/xx/work/optimize/test.c
/tmp/output/tmp/optimize/test.c


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1143) | 评论(0) | 转发(0) |
0

上一篇:CFI support for GNU assembler (GAS)

下一篇:Handling oprofile sample buffer overflows

相关热门文章
  • Python 包管理工具解惑
  • Qt学习笔记---信号与槽...
  • MyBatis 入门(五)--分页查询(...
  • 研究说:失眠的人刷微博、朋友...
  • 内核头文件的使用
  • socket中的短连接与长连接,心...
  • Haproxy、Keepalived双主高可...
  • Tomcat的性能与最大并发(1000)...
  • Nginx深入详解之日志
  • socket编程的同步、异步与阻塞...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击