perf tutorialsによると、perf stat
は、ハードウェアカウンタを使用してキャッシュミスを報告することになっています。しかし、私のシステム(最新のArch Linux)では、それはしません:なぜレポートキャッシュミスが解決されないのですか?
[[email protected] goog]$ perf stat ./hash
Performance counter stats for './hash':
869.447863 task-clock # 0.997 CPUs utilized
92 context-switches # 0.106 K/sec
4 cpu-migrations # 0.005 K/sec
1,041 page-faults # 0.001 M/sec
2,628,646,296 cycles # 3.023 GHz
819,269,992 stalled-cycles-frontend # 31.17% frontend cycles idle
132,355,435 stalled-cycles-backend # 5.04% backend cycles idle
4,515,152,198 instructions # 1.72 insns per cycle
# 0.18 stalled cycles per insn
1,060,739,808 branches # 1220.015 M/sec
2,653,157 branch-misses # 0.25% of all branches
0.871766141 seconds time elapsed
私は何が欠けていますか?私はすでにマニュアルページとウェブを検索しましたが、明らかなものは何も見つかりませんでした。
編集:私のCPUはIntel i5 2300Kです(重要な場合)。
ハードウェアカウンタによって異なります。私は 'perf'を使ったことは一度もありませんでしたが、 'PAPI'(http://icl.cs.utk.edu/PAPI/)を使用しました。利用可能なハードウェアカウンターを調べて何が得られるかを調べることができますあなたのCPU。 – SamGamgee
'perf stat -d'を試してください - いくつかのキャッシュイベントを報告します。レコード/レポートメモリイベントのための新しい 'perf mem'ツールもチェック - http://www.linuxtag.org/2013/fileadmin/www.linuxtag.org/slides/Arnaldo_Melo_-_Linux__perf__tools__Overview_and_Current_Developments.e323.pdfスライド10とhttp ://man7.org/linux/man-pages/man1/perf-mem.1.html – osgx
osgx、 'perf stat -d'はイベントの多重化を有効にします。これは時には誤ったレートを報告することがあります。実行ごとに5〜7回のhwイベントを手動で選択する方が良いです。 perf stat -dのみを使用して、そのようなイベントの名前を取得します。インテルの他の方法 - https://github.com/andikleen/pmu-tools – osgx