oprofile使用方法

安装oprofile,而后加载内核模块。#modprobe oprofile,模块加载后开始使用oprofile。linux

1. 首先设置监视内核,使用debuginfo提供的内核,/boot下面的内核没法使用网络

#opcontrol --vmlinux=/usr/lib/debug/boot/vmlinux-xxxxx函数

若是不须要监视内核debug

#opcontrol --no-vmlinuxmodule

2. 启动oprofilefile

#opcontrol --startbug

3. 运行被监视的应用程序

# program runcpu

4. dump监视数据数据

#opcontrol --dump

5. 关闭 oprofile

#opcontrol --shutdown

关闭后并对程序进行分析后能够清除上一次的监视数据

#opcontrol --reset

6. 查看结果

#opreport  

或者

#opannotate -s [ -p /usr/lib/debug ] 

上面这条命令能够让你查看到代码中的哪一个函数的哪条语句被cpu执行次数最多,极可能就是最耗时的地方。

若是你要监视本身的模块那么,须要把*.ko放入到/usr/lib/debug中debug kernel的目录中。我本身的驱动程序和网络相关,

因此放到了/usr/lib/debug/lib/modules/2.6.32-xxxx/kernel/drivers/net/igb/ 目录下,当你使用上面的命令时

#opannotate -s -p /usr/lib/debug 

就会打印出你模块代码中的语句的执行状况。opreport -l 的使用相似,也能够使用-p选项。

相关文章
相关标签/搜索