ubuntu 11.10でperf 3.0.4を使用しています。その記録コマンドはうまく機能し、収集された 256 個のサンプルが端末に表示されます。しかし、perf reportを使用すると、次のエラーが表示されます。
perf.data file has no samples
私は解決策をたくさん探しましたが、まだ成功していません。
このスレッドにはいくつかの有用な情報があります: http://www.spinics.net/lists/linux-perf-users/msg01436.html
PMU をゲストに公開しない VM で実行している場合、デフォルトのコレクション ( -e cycles
) は機能しないようです。で実行してみてください-e cpu-clock
。そのスレッドによると、OPはUbuntu 10.04を実行している実際のホストでも同じ問題を抱えていたので、それも解決するかもしれません...
コマンドによって報告されるサンプル数はperf record
概算であり、正しいイベント数ではありません (こちらの perf wiki を参照してください)。
イベントの正確な数を取得するには、生ファイルをダンプし、wc -l
結果の数をカウントするために使用します。
perf レポート -D -i perf.data | grep RECORD_SAMPLE | トイレ -l
このコマンドは、perf report
イベントが見つからないと言うケースでは 0 を報告する必要があります。
どのようにパフォーマンス レコードを使用しているか、どのイベントをサンプリングしているか、どのハードウェア、どのプログラムを使用しているかについて、詳細をお知らせください。
-c
編集: 最初にまたは-F
オプションを使用して、サンプリング期間または頻度を増やすことを試みることができます。
過去に動作していたマシンでこれに遭遇するときはいつでもperf record
、パフォーマンス カウンターを使用する別の何かを実行したままにしておくことが原因です。たとえば、perf top
別のターミナル タブで実行しています。
この場合、perf record
単に PMU 関連のサンプルが記録されていないように見えます。