0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jetson向けのperfをビルドする

Posted at

まとめ

配布されてなかったのでビルドできるようにしました

prefとは

パフォーマンスカウンタを使用したプロファイリングののためのツールです。
アプリケーションのパフォーマンスチューニングで計測をするためには使えます。
ところでprefのカウンタはlinuxに深く依存している、というかLinuxのツールであり、カーネルバージョンにあったバイナリが必要です。

Ubuntuなどではapt install linux-tools-`uname -r` のようにカーネルバージョンを指定してinstallができたりしますが、Jetsonでは配布されていなかったりします。
自前でビルドが必要です。

Jetsonにおけるprefのビルド

prefはL4Tのソースコード、カーネルのツール郡の中に含まれています。
Linux_for_Tegra/source/kernel/<kernel-dir>/tools/perf
自前でカーネルの変更をしている場合はこちらを一緒にビルドしても使えます。

ですが、それだけではすべての機能がつかえるわけではありません。
パフォーマンスカウンタとしてアクセスできる機能や、計測結果を処理するためにpythonなどスクリプトと連携するなどができ、そのためには実機の中で然るべきライブラリとともにビルドをすることで機能が使えます。

perf with flamegraph

可視化としてflamegraphが使いたいです。
perfにもこの機能は取り込まれておりpythonと合わせてビルドをする必要があります。
ファイルの配置はカーネルビルドとほとんど同じなのでR35,R36についてはMakefileで配置可能にしています

Jetson上にcloneして、適切なパッケージをinstallして、ビルドをすることで有効なperfが作れます。

sudo apt install libdw-dev libdwarf-dev python3-dev 

make -C perf-tool build

スクリプトは適切なパスへのは位置も必要なので、すべてを/opt/perfへの配置という形でdebパッケージを作れるようにしています。
debを作るのにgo-bin-debを使っています。

計測と表示は以下のとおりです。d3-flame-graph(同梱のindex.html)でstacks.jsonを開けばflamegraphが見れます。

# イベントにアクセスするために権限付与
sudo sysctl kernel.perf_event_paranoid=0

# record
/opt/perf/perf record -a --call-graph dwarf -F 99 <application command>

# export Flamegraph(stacks.json) from perf.data
/opt/perf/perf script report flamegraph -f json
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?