プログラマブル・アクセラレーション・カード (インテルArria 10 GX FPGA対応)のインテル・アクセラレーション・スタックのクイック・スタートガイド

ID 683633
日付 8/05/2019
Public
ドキュメント目次

B. グレースフル・サーマル・シャットダウンの処理

注:
  • 認定OEMサーバーシステムは、標準的なワークロードに適切な冷却を提供し、 pacdの使用はオプションです。 
  • pacdの使用に関する詳細については、 OPAE pacdのドキュメント を参照してください。これには、予期しないシステムのリブートを引き起こす可能性がある考慮事項が含まれます。

Intel QPI Daemon( pacd )は、ハードウェアが回復不能な上限または回復不能な下限のセンサーしきい値に達したためにクラッシュするのを防ぐために使用できるプログラムです。 pacdは、Board Management Controllerによって報告された23 個のセンサーのいずれかを監視できます。pacdは、スタンドアロンとして、デーモンとして、またはsystemdサービスとして実行できます。 OPAE tools-extraパッケージがインストールされると、pacdはコンフィグレーション・ファイルとサービスファイル(それぞれpacd.confpacd.service )とともにOPAEバイナリ・ディレクトリー(デフォルト: /usr/bin )に配置されます。

起動時に、 pacdはそのしきい値をBMCのデフォルトのセンサーしきい値に設定します。 BMCしきい値は、しきい値範囲が拡大されるように再調整されます。これは、優雅なサーマルシャットダウンの責任をpacdに渡すことです。

pacdは定期的にセンサー値を読み取り、値がしきい値を超えると、FPGAをリセットします。これにより、実行中のすべてのプロセスにSIGHUPシグナルが送信され、ホストからボードにアクセスできなくなります。デーモンは、ボードを冷却するために、後述のようにpacd.conf-cで指定された設定可能な時間待機します。この構成可能な待機時間が経過すると、pacdサービスは指定されたAFUをプログラムします。開発するAFUホスト・アプリケーションがSIGHUPシグナルを監視して終了することを確認します。

pacdは、次のようにsystemdサービスとして設定できます(昇格した特権(sudo)でシェルを使用する):

  1. pacd.confファイルを編集して、「DefaultGBSOptions」エントリーを、FIMに適したAFUのリストで更新します。各AFUファイルへの絶対パスを使用し、各ファイル名の前に「-n」を付けます。
    sudo vim/usr/bin/pacd.conf
    
    エントリーを編集:
    DefaultGBSOptions=-n /home/<username>/intelrtestack/\
    a10_gx_pac_ias_1_2_pv/hw/samples/nlb_mode_3/bin/nlb_mode_3.gbs
    注:
    オプションの設定は次のとおりです。
    • PCIeアドレス(例:-S、-B、-D、-F)、pacdは指定されたPCIeアドレスコンポーネントに一致するすべてのIntel QPIを監視します。たとえば、-B 5のみを指定すると、すべてIntel QPI PCIeバス5の監視対象になります。
    • Sensor Threshold—しきい値はグローバルなので、-T 11:95.0:93.0を指定すると、選択したすべてのIntel QPIでセンサー11が監視されます。値が95.0を超えると、pacd.confで-nで指定されたデフォルトビットストリームがプログラムされます(PR)。 センサーは、値が93.0を下回るまでトリガーされたと見なされます(PRは実行されない)。
    • pacd.confThresholdOptions -c <time period>を指定して、クールダウン期間を変更するか、CooldownInterval=<time period>を変更します。
    • センサー番号は、
      sudo fpgainfo bmc
      を実行して確認できます。

    残りのオプション変数を調べて、システムに合わせて調整します。

  2. pacd.confをデフォルトのsystemdサービス設定ディレクトリー(通常は /etc/sysconfig )にコピーします。
    CentOS:
    sudo cp /usr/bin/pacd.conf /etc/sysconfig/
    Ubuntu:
    sudo cp /usr/bin/pacd.conf /etc/default
  3. pacd.serviceファイルを編集して、「 EnvironmentFile 」エントリーを更新し、 pacd.confファイルがコピーされた場所を反映します。シングル・ダッシュ「 - 」をパス名の先頭に追加し、絶対パスを指定します。
    sudo vim /usr/bin/pacd.service

    Edit entry:

    CentOS:
    EnvironmentFile=-/etc/sysconfig/pacd.conf
    Ubuntu:
    EnvironmentFile=-/etc/default/pacd.conf
  4. pacd.serviceを/etc/systemd/system/pacd.serviceにコピーします。これにより、 pacdsystemdから見えるようになります。
    CentOS:
    sudo cp /usr/bin/pacd.service /etc/systemd/system/
    Ubuntu:
    sudo cp /usr/bin/pacd.service /lib/systemd/system/
  5. systemdサービスとしてpacdを起動します。
    注: コマンドを通常のユーザーモードで実行できない場合、sudoを使用してください。
    systemctl daemon-reload systemctl start pacd.service 
  6. オプション: pacdをイネーブルして起動時に再起動するには、次を実行します。
    systemctl enable pacd.service

    pacd が開始したかどうかを確認し、状態またはアクションを確認するには、ログファイル(「 LogFile 」行の pacd.conf で指定される)を調べてください。

    systemctlコマンドの完全なリストについては、次のコマンドを実行してください:
    systemctl -h
     
  7. サービスが実行されていることを確認するには、次のコマンドを実行します。 
    systemctl status pacd.service
    
    サンプル出力:
    注: 仮想マシンから パーシャル・リコンフィグレーションを開始することはできません。そのため、 pacdは仮想マシンで実行できません。
     
  8. サービスを停止するには: 
    systemctl stop pacd.service

    pacdツールの詳細については、 GITのOpen Programmable Acceleration Engine-Documentation Webページを参照してください。