2017-09-07 6 views
1

AMDのCPUを搭載したデバイスにperfを使用しようとしていますが、AMDからのcache-missesの取得方法に関する情報は実際には見つかりません。 -e rNNNと書く必要があるとお伝えします。NNNは16進数のイベントですが、これらのコードを見るためのテーブルや何かを見つけることはできませんでした。あなたはこれを手伝ってもらえますか?インターネットに情報がまったくないようです。実際には、perfのマニュアルにはいくつかのリンクがありますが、有効ではありません。(AMD perfイベント

答えて

1

チェックperf list現代のLinuxカーネルバージョンでは、アーキテクチャ固有のハードウェアイベントが報告されることがあります。 とcyclesは、一般的なperf hwイベントであり、常にマッピングされているわけではありません(マッピングはperfdソースコード内で、cache-missesの場合はhttp://elixir.free-electrons.com/linux/latest/source/arch/x86/events/amd/core.cです) - perf listによって(特に古いカーネルの場合)、すべてが実際のハードウェアイベントにマッピングされるわけではありません。 [PERF_COUNT_HW_CACHE_MISSES] = 0x077e,にマップされています)

また、perfリストから別のイベントを試してみてください。perf stat -e event1,cycles,instructions,cpu-clockイベント1はチェックしたいイベントで、いくつかの作業中のイベントがあります。

生のイベントをエンコードするには、プロセッサのドキュメント、perfソース(正確な16進数エンコーディング用)、およびsome external toolsを使用する方が簡単です。インテルの場合、http://github.com/andikleen/pmu-toolsサイトからocperf.pyがあります。また、http://www.bnikolic.co.uk/blog/hpc-prof-events.htmlで説明されているperfmon2/libpfm4のジェネリックなジェネレータがあります。showevtinfo util(FAQのQ2eでrXXXXコードを取得する方法をお勧めします)のBojan Nikolicによる「CPUパフォーマンスイベントの全範囲を監視する方法」どのように私は、適切な「生」のイベント値を決定します):

これらのカウンタ1の完全な使用は、現在XXXXがコードである生の進コード(-e rXXXXとしてperfツールにそれらを指定する必要がありますようにするために)。これにより、次の2つの明白な疑問が生じます。

  • どのようなコードを使用しますか?
  • この情報は何を意味していますか?

私は、後の記事でこれらの第二をカバーするが、ここでは当分の間、使用する生コードを把握する方法であるでしょう:

  1. perfmon2/libpfm(hの最新バージョンを取得/ tこのdeveloperWorksの記事):

    git clone git://perfmon2.git.sourceforge.net/gitroot/perfmon2/libpfm4; cd libpfm4; は、利用可能なすべてのイベントのリストを取得するには(examplesサブディレクトリ内)

  2. 実行showevtinfoプログラム作成、およびサポートされているマスクと修飾子は

  3. (全出力の例については、以下の出力を参照します)

    あなたが使用したいマスクとモディファイアを使って、どんな出来事と何を描くか。マスクには接頭辞Umaskが付いており、角括弧の中に16進数と記号名で示されています。修飾子の先頭にはModifがあり、その名前も角括弧で囲みます。

  4. 生コードにeventumaskmodifiersを変換するcheck_eventsプログラム(また、実施例では、サブディレクトリ)を使用。これを行うには、次のコマンドを実行します。 check_events <event name>:<umask>[(:modifers)*] つまり、イベント名、umask、および複数の修飾子をすべてコロン文字で区切って指定します。プログラムは次に、例えば、とりわけ、生のイベント指定をプリントアウトします:

    コード:0x531003

  5. この16進コードは、によってperf statに、たとえば、GNU/Linuxのperfツールへのパラメータとして使用することができます-e r531003オプションを指定してください。