Env
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.04
DISTRIB_CODENAME=zesty
DISTRIB_DESCRIPTION="Ubuntu 17.04"
How to setup
Package install
# build for babletrace (maybee)
sudo apt install libnewt-dev binutils-arm-none-eabi libcrypto++-dev libunwind-dev systemtap-sdt-dev libssl-dev libperl-dev libiberty-dev
# build for babeltrace
$ sudo apt install dh-autoreconf bison libdw-dev libelf-dev flex uuid-dev libpopt-dev
clone source
# make build dir
$ mkdir perf-build
$ cd perf-build
# checkout babeltrace
$ git clone git://git.efficios.com/babeltrace.git
# checkout babeltrace
sudo git clone git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
Build and Install Babletrace
$ cd babeltrace
$ sudo ./bootstrap
$ sudo ./configure --prefix=/opt/libbabeltrace LDFLAGS=-L/usr/local/lib
$ sudo make -j4 prefix=/opt/libbabeltrace
$ sudo make install prefix=/opt/libbabeltrace
# ** optional ** (私はビルドできなかったので以下を追加でInstall)
$ sudo apt install uuid-dev libnuma-dev
Build and Install Perf with Babeltrace
ユーザーホーム配下へInstallします
$ cd linux/tools/perf/
$ sudo git checkout perf/core
# build
$ sudo JDIR=/home/$USER/var/lib/java/jdk-11.0.1 LIBBABELTRACE=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/lib make DISTDIR=/home/$USER/linux
# install
$ sudo JDIR=/home/$USER/var/lib/java/jdk-11.0.1 LIBBABELTRACE=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/lib make install DISTDIR=/home/$USER/linux
※ Document ディレクトリに Build.txt があるので一読がおすすめ
-
bt_field_signed_integer_get_value2重定義をコメントアウト
237 extern int bt_field_signed_integer_get_value(struct bt_field *integer,
238 int64_t *value);
こっちをコメントアウト
453 extern int bt_field_signed_integer_get_value(
454 struct bt_field *integer_field, int64_t *value);
- JDIR が”未指定 Warn”出力があり変数を設定
- 参考のコマンドは /opt/libbabeltrace となっているが /opt/libbabeltrace/lib を指定
bt_ctf_validate_identifier未定義エラーが発生
References
Examples
sleep して試してみる
$ sudo /home/$USER/linux/bin/perf sched record -- sleep 15
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 2.613 MB perf.data (14741 samples) ]
$ sudo LD_LIBRARY_PATH=/opt/libbabeltrace/lib /home/$USER/linux/bin/perf data convert -i perf.data --to-ctf=./ctf
[ perf data convert: Converted 'perf.data' into CTF data './ctf' ]
[ perf data convert: Converted and wrote 1.654 MB (14741 samples) ]
$ ls ctf/
metadata perf_stream_0 perf_stream_1 perf_stream_2 perf_stream_3
TraceCompass でみてみる




