第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 nopno operations(nop) がデフォルトのトレーサーです。トレースシステムの
current_tracerファイルにtimerlatトレーサーを追加します。# cd /sys/kernel/tracing/ # echo timerlat > current_tracerトレース出力を生成します。
# cat trace # tracer: timerlat
検証
次のコマンドを入力して、
timerlatが現在のトレーサーとして有効になっているかどうかを確認します。# cat /sys/kernel/tracing/current_tracer timerlat