問題タブ [perf]
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.
android - "bitsperlong.h" : ARM (Android) の Perf のクロスビルドで問題が発生しました
x86_64 Ubuntu システム (12.04) から ARM アーキテクチャ用にクロスビルドされた Android 用の Perf をビルドしようとしています。./tools/perf/Documentation/android.txt にある Linux カーネルに付属の指示に従っています。同じテキスト ファイルに記載されている NDK ベースのビルドと AOSP 派生の sysroot メソッドの両方を試しました。ただし、私は AOSP から派生した sysroot の方法を好みます。
これは AOSP の 4.3_r3.1 タグの同期であり、カーネル 3.10.17 が追加され、適切な .config ファイルが生成されました。(クロスビルドされたカーネルは、以下のクロスビルド Perf 試行の前にビルドされました。)
ホスト プラットフォームのビルド Perf は正常に動作します。ただし、ARM のクロスビルドは次のエラーで失敗します。
「bitsperlong.h」ファイルが見つからないというトピックについては、Google から多数のヒットがあり、そのうちのいくつかはSO にも掲載されています。ほとんどの場合、これらの質問と回答は次のいずれかのカテゴリに分類されます。
- カーネルモジュールを構築しようとしている人 (私はそうではありません)
- クロスビルドではなく、ホスト カーネル ヘッダーをインストールする必要があるだけの人 (私はインストールしていません)
上記のSOリンクで提供される唯一の解決策は、Perfのソースファイルを編集して<asm-generic/bitsperlong.h>
代わりに含めることです<asm/bitsperlong.h>
...私が見た別のバリアントは、後者のディレクトリに前者へのシンボリックリンクを作成することです。
これらの解決策はどちらも私にはコーシャに見えず、いずれにせよ、次のような他のコンパイル エラーが発生するだけです。
最初は、この問題は、Perf をビルドする前に同じソース ツリー内でカーネル自体をクロスビルドしなかったことが原因ではないかと考えていました (おそらく、カーネル ビルドがいくつかの $ARCH に適したシンボリック リンクなどをセットアップするため)。だから、私はまだこの同じ問題を抱えていました。
更新:役立つ場合に備えて、これはカーネルをクロスビルドする方法でした:
c++ - パフォーマンス出力の奇妙な文字...
シンボルを使用してコンパイルした Linux perf で Webkit ビルドをデバッグしようとしています。
「perf report -g」の出力には、半分が人間が読める記号、残りの半分が英数字の値を持つシンボルが含まれています。
例えば:
ここで何が起こっているのですか?
_ZN7 とは何ですか?
私の推測では、これは C++ と関係があるので、perf でシンボルを正しく表現するには、より多くのオプションを使用してコンパイルする必要があるかもしれません。
ここでの任意のポインタをいただければ幸いです。ドキュメントのどこにもこれについて何も見つかりません。
linux - コマンド「perf list」は、同じバージョンの RedHat Linux で異なる出力を生成するのはなぜですか?
同じ OS バージョンの 2 台の RedHat Linux マシンを入手しましたが、コマンドperf list
の場合、異なる出力が生成されます。
最初のマシン:
猫/proc/バージョン
Linux バージョン 2.6.32-279.11.1.el6.x86_64 (mockbuild@ca-build44.us.oracle.com) (gcc バージョン 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP 火2012 年 10 月 16 日 08:03:36 PDT
perf --バージョン
パフォーマンス バージョン 3.0.36-300.17.1.el6uek.x86_64
このマシンでperf list
は、トレースポイント イベントを一覧表示できませんでした。
2 番目のマシン:
猫/proc/バージョン
Linux バージョン 2.6.32-279.11.1.el6.x86_64 (mockbuild@ca-build44.us.oracle.com) (gcc バージョン 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP 火2012 年 10 月 16 日 08:03:36 PDT
perf --バージョン
パフォーマンス バージョン 3.0.36-300.17.1.el6uek.x86_64
このマシンでは、perf list
すべてのイベントを一覧表示できます
intel - Intel Xeon のキャッシュ イベントのパフォーマンス カウンター
perf
Intel Xeon E5 ファミリ用のパフォーマンス カウンタ (linux) を使用しようとしています。
キャッシュミスの解釈についてはかなり混乱しています。L1 と LLC の値は簡単にアクセスできますが、L2 の情報は -rNNN イベントを介してレジスタから読み取る必要がありました。しかし、ドキュメンテーションでは、イベント番号とマスク フィールドを組み合わせて NNN 値を与える方法を見つけられませんでした。の 1 つの例だけperf help
が、値 A8 と 01 のマスクを示し、結果として 1a8 になります。しかし、マスキングするときの一般的なルールは何ですか? ドキュメントに書かれるべきではないか、それとも標準のOR関数か何かですか?
また、ドキュメントや他の関連トピックの回答から、Xeon の場合に測定された LLC 値が L3 であるか L2 であるかを理解していません。ハードウェアに第 3 レベルのキャッシュがあるとどうなりますか? LLC はまだ最後のレベル、つまり L3 イベントを測定しますか?
クリアした人いる?
c++ - C++ メソッドの perf プローブを追加できない
ライブラリに C++ メソッドの for を追加しようとしてperf probe
いますが、次のようになります。
利用可能な機能を次のようにリストしました。
また、含まれているC関数をいくつか試しました。これらにはプローブを追加できます。_ZN2my8Own16Method
だから私はマングルされた名前(例えば)を試してみましたが、perf probe
それは存在しないと言います。
この問題を回避する方法はありますか?
linux - アプリケーション ルーチンのトレースに perf を使用する
Linux perf ツールを使用して、プリコンパイル済みバイナリでユーザー空間関数への引数をキャプチャすることは可能ですか? ドキュメントやグーグルでこれを理解できませんでしたか?
他の提案がない場合は?ありがとう...
linux - kptr_restrict を 0 に設定する方法はありますか?
現在、Linux perf の実行に問題があります。主な理由/proc/sys/kernel/kptr_restrict
は、現在 1 に設定されているためです。
ただし、/proc/sys/kernel/kptr_restrict
次のように 0 をエコーしてみますと...
許可が拒否されたというエラーが表示されます。権限も変更できないと思います。
どういうわけかこれを直接設定する方法はありますか?私はスーパーユーザーです。これが設定されていないと、perf が適切に機能するとは思えません。