我试图使用O形在一个大型实时应用程序中记录缓存丢失:
$ sudo opcontrol --no-vmlinux --event=LLC_MISSES:100000 --session-dir=/var/tmp/oprofile -c=5 --start但是当我看报告的时候,它没有提到缓存丢失。它只对CPU_CLK_UNHALTED进行采样:
$ sudo opreport -l --session-dir=/var/tmp/oprofile
CPU: Intel Architectural Perfmon, speed 1596 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (No unit mask) count 100000
samples % image name app name symbol name
63243 92.2946 no-vmlinux no-vmlinux /no-vmlinux
564 0.8231 libc-2.13.so libc-2.13.so /lib32/libc-2.13.so
(etc)但是
$ sudo opcontrol --status
Daemon running: pid 3220
Event 0: LLC_MISSES:500000:65:1:1
Separate options: library
vmlinux file: none
Image filter: none
Call-graph depth: 5我做错了什么?我也无法让它对ophelp中列出的任何其他计数器进行采样。
这是在Ubuntu上的oprofile 0.9.6,内核版本2.6.38。
发布于 2011-11-03 21:36:26
实际上,您需要用以下方法杀死并重新启动oprofile守护进程
sudo opcontrol --stop
sudo opcontrol --reset
sudo opcontrol --shutdown
sudo opcontrol --start-daemon
sudo opcontrol --start当更改抽样事件时。仅仅停止并启动配置文件是不够的。不是说这在任何地方都有记录。
https://stackoverflow.com/questions/8001908
复制相似问题