INST_RETIRED.ANYはもはやLinux 6.7のパフォーマンスカウンタではありません。

INST_RETIRED.ANYはもはやLinux 6.7のパフォーマンスカウンタではありません。

前のカーネルINST_RETIRED.ANY(および次の文書で説明されている他の多くのカウンタ)の場合https://perfmon-events.intel.com/ahybrid.htm)perfのカウンターで。

私は現在Sapphire Rapids {Golden Cove}プロセッサでパフォーマンスを使用し、6.7カーネルを実行しています。

私が次のことをするとき

 perf stat -e INST_RETIRED.ANY,cycles sleep 2

わかりました。

event syntax error: 'INST_RETIRED.ANY,cycles'
                     \___ parser error

これが予想される動作ですか?

答え1

少なくとも私が走って探してsudo perf listみると、他のイベントの大文字使用規則と一致することがinst_retiredわかりました。inst_retired.anyそのため、ツールで名前が変更される可能性が高くなります。私は走ることができます

perf stat -e inst_retired.any,cycles sleep 2

そして得る


 Performance counter stats for 'sleep 2':

         1.600.192      inst_retired.any
         2.142.871      cycles

       2,001396579 seconds time elapsed

       0,000000000 seconds user
       0,001231000 seconds sys


このIntel(12/13世代ではない)マシンで。

答え2

INST_RETIRED.ANYが解析エラーを返すのは、perfバージョンが一致する必要があるLinuxバージョンと一致しないためです。

このマシンは、マシンが正しく設定されていると思っている誰かから受け取ったため、バージョンが一致しないことを確認することには気にしませんでした。幸いなことに、1つのコメントは、perfのバージョンを確認するよう提案して問題を解決しました。

関連情報