第14章 RHEL for Real Time での timerlat を使用したスケジューリングレイテンシーの測定
rtla-timerlat
ツールは、timerlat
トレーサーのインターフェイスです。timerlat
トレーサーは、リアルタイムスレッドのウェイクアップレイテンシーの原因を検出します。timerlat
トレーサーは、リアルタイム優先度の CPU ごとにカーネルスレッドを作成します。これらのスレッドは、ウェイクアップするため、およびスリープに戻るための定期的なタイマーを設定します。ウェイクアップ時に、timerlat
は情報を検索して収集します。この情報は、オペレーティングシステムのタイマーレイテンシーのデバッグに役立ちます。timerlat
トレーサーは、アクティブになるたびに出力を生成し、次の 2 行を出力します。
-
timerlat
トレーサーは、タイマー割り込み要求 (IRQ) ハンドラーで見られたタイマーレイテンシーを定期的に出力します。これは、スレッドのアクティブ化の前に、hardirq
コンテキストで表示される最初の出力です。 -
2 番目の出力は、スレッドのタイマーレイテンシーです。
ACTIVATION ID
フィールドには、それぞれのスレッド実行に対する割り込み要求 (IRQ) のパフォーマンスが表示されます。
14.1. スケジューリングレイテンシーを測定するための timerlat トレーサーの設定 リンクのコピーリンクがクリップボードにコピーされました!
トレースシステムの curret_tracer
ファイルに timerlat
を追加することで、timerlat
トレーサーを設定できます。current_tracer
ファイルは通常、/sys/kernel/tracing
ディレクトリーにマウントされます。timerlat
トレーサーは、スレッドのレイテンシーが 100 マイクロ秒を超えた場合に割り込み要求 (IRQ) を測定し、分析用にトレース出力を保存します。
手順
現在のトレーサーをリストします。
cat /sys/kernel/tracing/current_tracer nop
# cat /sys/kernel/tracing/current_tracer nop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow no operations
(nop
) がデフォルトのトレーサーです。トレースシステムの
current_tracer
ファイルにtimerlat
トレーサーを追加します。cd /sys/kernel/tracing/ echo timerlat > current_tracer
# cd /sys/kernel/tracing/ # echo timerlat > current_tracer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トレース出力を生成します。
cat trace tracer: timerlat
# cat trace # tracer: timerlat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを入力して、
timerlat
が現在のトレーサーとして有効になっているかどうかを確認します。cat /sys/kernel/tracing/current_tracer timerlat
# cat /sys/kernel/tracing/current_tracer timerlat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow