Red Hat Training

A Red Hat training course is available for RHEL 8

9.2. トレースポイント

debugfs が、/sys/kernel/debug ディレクトリーの標準的な場所にマウントされていると仮定すると、トレースポイントは /sys/kernel/debug/tracing/ ディレクトリーの下にあります。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

このインターフェイスは、一定期間にわたって長時間実行しているプロセスを使用し、イベントの後にバッファー内の最新のキャプチャー情報を確認する必要がある場合に便利です。代替インターフェイスである /sys/kernel/debug/tracing/trace_pipe は、すべての出力が必要な場合に使用できます。イベントは、発生時にこのファイルから読み取られます。このインターフェイスを介して利用可能な履歴情報はありません。出力の形式は両方のインターフェイスで同じであり、各 GFS2 イベントはこの付録の後のセクションで説明します。

トレースポイントのデータの読み取りには、trace-cmd と呼ばれるユーティリティーを利用できます。このユーティリティーの詳細は、 http://lwn.net/Articles/341902/ を参照してください。trace-cmd ユーティリティーは strace ユーティリティーと同様に使用することができ、さまざまなソースからトレースデータを収集している間にコマンドを実行できます。