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

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

7.2. ホスト上のVFポートのコンフィグレーション

デフォルトでは、PFは港。次の手順の転送 VFへの制御。 VFコントロールへの転送後、VMで実行されているアプリケーションは、AFUをアクセスできます 。

マルチカードシステムで、単一のPCIeデバイスのみでVFをコンフィグレーションする場合、以下のコマンドを実行して、特定のPCIeのデバイスマッピングを見つけます。
ls -l /sys/class/fpga/intel-fpga-dev.*
サンプル出力:
/sys/class/fpga/intel-fpga-dev.0 -> ../../devices/pci0000:36/0000:36:00.0/0000:37:00.0/fpga/intel-fpga-dev.0

/sys/class/fpga/intel-fpga-dev.1 -> ../../devices/pci0000:ae/0000:ae:00.0/0000:af:00.0/fpga/intel-fpga-dev.1

次のコマンドでPCIe B:DF(AF:00.0)およびB:DF(37:00.0)をターゲットにするには、それぞれ*ではなくインスタンスID 1および0を使用します。

  1. 次の3つのコマンドを個別に実行して、必要なパスをエクスポートします。
    export port_path=$(find /sys/class/fpga/intel-fpga-dev.* \
    -maxdepth 1 -follow -iname intel-fpga-port.*)
    export link_path=$(readlink -m /$port_path/../)
    export pci_path=$link_path/../../
  2. fpgaportツールを使用して、PFによって制御されるポートを解放します。
    sudo fpgaport release /dev/intel-fpga-fme.* 0
  3. SR-IOVとVFをイネーブルします。 各VFには1つのAFUポートがあります。
    sudo sh -c "echo 1 > $pci_path/sriov_numvfs"
  4. VFデバイスの追加のデバイス番号を見つけます。
    lspci -nn | grep :09c[45]
    サンプル出力:
    04:00.0 Processing accelerators [1200]: Intel Corporation Device [8086:09c4]
    04:00.1 Processing accelerators [1200]: Intel Corporation Device [8086:09c5]

    lspciは、追加のデバイス番号09c5を示します。これは、VMに割り当てるVFデバイスです。 PFの元のバスおよびデバイス番号は09c4のままです。

    この例のVFデバイスのDomain:Bus:Device.Function(BDF)表記は000:04:00.1であることに注意してください。 このBDFをシステムに適したBDFに置き換えます。

  5. Vfio-pciドライバーをロードします。
    sudo modprobe vfio-pci
  6. VFデバイスをドライバーからアンバインドします
    sudo sh -c "echo 0000:04:00.1 > \
    /sys/bus/pci/devices/0000:04:00.1/driver/unbind"
  7. VFデバイスのベンダーとデバイスIDを見つけます。
    lspci -n -s 04:00.1

    サンプル出力:

    EN2340/1200/8086/09c5
  8. VFをvfio-pciドライバーにバインドします。
    sudo sh -c "echo 8086 09c5 > \
    /sys/bus/pci/drivers/vfio-pci/new_id"