第7章 ハードウェアおよびファームウェアのレイテンシーテストの実行および解釈

hwlatdetect プログラムを使用すると、潜在的なハードウェアプラットフォームがリアルタイム操作の使用に適しているかどうかをテストして検証できます。

前提条件

  • RHEL-RT (RHEL for Real Time) パッケージおよび realtime-tests パッケージがインストールされている。
  • 低レイテンシー操作に必要なチューニング手順については、ベンダーのドキュメントを参照してください。

    ベンダーのドキュメントは、システムを System Management Mode (SMM) に移行する System Management Interrupts (SMI) を減らしたり、削除したりする手順を提供できます。システムが SMM にある間、ファームウェアを実行し、オペレーティングシステムのコードは実行しません。これは、SMM にある間にタイプアップするすべてのタイマーが、システムが通常の操作に戻るまで待機することを意味します。Linux では SMI をブロックできないため、これにより原因不明のレイテンシーが発生する可能性があります。実際に SMI を取得したことを示す唯一の兆候は、ベンダー固有のパフォーマンスカウンターレジスターにしかありません。

    警告

    致命的なハードウェア障害が発生する可能性があるため、Red Hat は SMI を完全に無効にしないことを強く推奨します。

7.1. ハードウェアおよびファームウェアのレイテンシーテストの実行

テストは、ハードウェアアーキテクチャー、またはBIOS もしくは EFI ファームウェアに起因する遅延を検出するため、hwlatdetect プログラムの実行中にシステムに負荷を掛ける必要はありません。hwlatdetect のデフォルト値では、毎秒 0.5 秒間ポーリングを行い、時刻を取得する連続した呼び出しの間に 10 マイクロ秒を超えるギャップがあれば、それを報告します。hwlatdetect は、システムで 最大限保証可能な 最大レイテンシーを返します。したがって、10μs 未満の最大レイテンシー値を要求するアプリケーションがある場合、hwlatdetect がギャップの 1 つを 20μs と報告する場合、システムは 20μs のレイテンシーしか保証できません。

注記

hwlatdetect が、システムがアプリケーションのレイテンシー要件を満たせないことを示した場合は、BIOS 設定を変更するか、システムベンダーと協力して、アプリケーションのレイテンシー要件を満たす新しいファームウェアを入手してみてください。

前提条件

RHEL-RT および realtime-tests パッケージがインストールされている。

手順

  • hwlatdetect を実行し、テスト期間を秒単位で指定します。

    hwlatdetect は、クロックソースをポーリングし、原因不明のギャップを探すことにより、ハードウェアおよびファームウェアに起因するレイテンシーを探します。

    # hwlatdetect --duration=60s
    hwlatdetect:  test duration 60 seconds
    	detector: tracer
    	parameters:
    		Latency threshold:    10us
    		Sample window:        1000000us
    		Sample width:         500000us
    		Non-sampling period:  500000us
    		Output File:          None
    
    Starting test
    test finished
    Max Latency: Below threshold
    Samples recorded: 0
    Samples exceeding threshold: 0