B.2. トレースポイント
トレースポイントは
/sys/kernel/debug/tracing/
ディレクトリーにあります (debugfs
が標準の場所である /sys/kernel/debug
ディレクトリーにマウントされていることを前提)。events
サブディレクトリーには、指定可能なすべてのトレーシングイベントが格納されます。gfs2
モジュールが読み込まれると、各 GFS2 イベントごとにサブディレクトリーを含む gfs2
サブディレクトリーが現れます。/sys/kernel/debug/tracing/events/gfs2
ディレクトリーの内容は以下のようになります。
[root@chywoon gfs2]# ls
enable gfs2_bmap gfs2_glock_queue gfs2_log_flush
filter gfs2_demote_rq gfs2_glock_state_change gfs2_pin
gfs2_block_alloc gfs2_glock_put gfs2_log_blocks gfs2_promote
すべての GFS2 トレースポイントを有効にするには、次のコマンドを入力します。
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
特定のトレースポイントを有効化するために、各イベントサブディレクトリーに
enable
ファイルがあります。また、各イベントまたはイベントセットを対象にイベントフィルターを設定するのに使用できる filter
ファイルの場合も同じです。各イベントの意味は、以下で詳しく説明します。
トレースポイントからの出力は、ASCII またはバイナリーの形式で提供されます。現在、この付録ではバイナリーインターフェイスに関する説明は含まれません。ASCII インターフェイスは 2 つの方法で利用できます。リングバッファーの現在の内容を一覧表示するには、以下のコマンドを実行します。
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
このインターフェイスは、一定期間にわたって長時間実行しているプロセスを使用し、イベントの後にバッファー内の最新のキャプチャー情報を確認する必要がある場合に便利です。もう 1 つのインターフェイスは
/sys/kernel/debug/tracing/trace_pipe
であり、すべての出力が必要な場合に使用することができます。イベントは、発生時にこのファイルから読み取られます。このインターフェイスを介して利用可能な履歴情報はありません。出力の形式は両方のインターフェイスで同じであり、各 GFS2 イベントはこの付録の後のセクションで説明します。
トレースポイントのデータの読み取りには、trace-cmd と呼ばれるユーティリティーを利用することができます。このユーティリティーの詳細は、「リファレンス」 のリンクを参照してください。trace-cmd ユーティリティーは strace ユーティリティーと同様に使用することができ、様々なソースからトレースデータを収集している間にコマンドを実行することが可能です。