2

大規模なリアルタイムアプリでキャッシュミスを記録するためにoprofileを使用しようとしています。

$ 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)

しかし、-statusは、oprofileL2ミスをサンプリングしていると主張しています。

$ 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のカーネルバージョン2.6.38のoprofile0.9.6で使用されます。

4

1 に答える 1

2

実際にoprofileデーモンを強制終了して再起動する必要があることがわかりました。

sudo opcontrol --stop
sudo opcontrol --reset
sudo opcontrol --shutdown
sudo opcontrol --start-daemon
sudo opcontrol --start

サンプリングされたイベントを変更する場合。プロファイルを停止して開始するだけでは不十分です。これはどこにでも文書化されているわけではありません。

于 2011-11-03T21:36:26.730 に答える