1
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?

More than 5 years have passed since last update.

perf の出力をCommon Trace Format にするやつを試したニャ(失敗からの動いた)

1
Last updated at Posted at 2019-03-30

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_value 2重定義をコメントアウト
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 でみてみる

tracecompass01.png

tracecompass02.png

tracecompass03.png

tracecompass04.png

tracecompass05.png

1
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
1
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?