大規模なリアルタイムアプリでキャッシュミスを記録するために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は、oprofileがL2ミスをサンプリングしていると主張しています。
$ 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で使用されます。