問題タブ [papi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kernel - papi_avail でイベントが表示され、C でアクセスできない
Odroid-XU4 で PAPI を実行しようとしています。PAPI をインストールしました。実行すると、 papi_avail -a
16 個のイベントが利用可能であることがわかります。
perf_event_paranoid
-1に設定しました。
C を使用して PAPI を呼び出そうとすると、常に次のように表示されます。
イベントが存在しません
ハードウェアに 16 個のイベントがあることはわかっていますが。
PAPI のテストを実行すると、次のエラーが表示されます。
このエラーの意味と、PAPI が機能するように修正する方法を知っている人はいますか?
編集
役立つ場合に備えて、 papi_component_avail
andの出力を含めました。papi_avail -a
papi_component_avail
papi_avail -a
perf をインストールしようとしたときの出力
c - PAPI を使用して perf_event_uncore リストからハードウェア カウンターを読み取る
PAPI を使用してハードウェア カウンターの 1 つを読み取ろうとしています。リストからイベントを読み込もうとするとperf_event
、うまくいきます。perf_event_uncore
ただし、 で取得したリストからカウンターの 1 つを読み取る必要がありますpapi_native_avail
が、エラーが発生します。Linux 5.4.0-3-amd64 バージョンのカスケード レイク アーキテクチャで実行されています。
PAPI_event_name_to_code
PAPI_OK を返しても、無効な引数PAPI_add_event
である -1 を返します。PAPI_EINVAL
いくつかのカウンターフォームを試しperf_event_uncore
ましたが、同じ問題が発生しました。これをイベントセットに追加するには、別の関数を使用する必要がありますか? または、私が間違っていることは他にありますか?
c - プロファイリング Cプログラムの関数のキャッシュヒット率
Linux マシンで実行されている C/C++ プログラム ( foo )の特定の関数のキャッシュ ヒット率を取得したいと考えています。私は gcc を使用しており、コンパイラの最適化は行っていません。perfを使用すると、次のコマンドを使用してプログラム全体のヒット率を取得できます。
perf stat -e L1-dcache-loads、L1-dcache-load-misses、L1-dcache-stores、L1-dcache-store-misses ./a.out
しかし、カーネルfooのみに興味があります。
perfまたはその他のツールを使用してfooのみのヒット率を取得する方法はありますか?
lscpu コマンドの出力は次のとおりです。