目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / pf_bb_configを使用した物理機能ベースバンドデバイスの設定

pf_bb_configを使用した物理機能ベースバンドデバイスの設定

発行日: 20/03/2025
概要

pf_bb_configツールは、指定された設定ファイルを利用して、さまざまなベースバンドデバイスの物理機能をカスタマイズおよび制御します。

目的

この記事では、pf_bb_configツールのインストールと使用方法に焦点を当てています。

所要時間

この記事の理解には10分ほどを要します。

目標

ブロードバンドデバイスの設定方法と、仮想マシンのハードウェアへの直接アクセスを有効にする方法を理解します。

要件

SUSE Linux Microの登録済み実行インスタンス

1 pf_bb_configとは

pf_bb_configは、ホストシステム上でブロードバンドデバイスを設定できるツールです。このツールは、設定空間にアクセスし、メモリマップドI/O(MMIO)の読み取りおよび書き込み操作を使用してパラメータを設定します。

特定のブロードバンドデバイス設定パラメータは、そのデバイスに固有の渡された設定ファイルから解析されます。

2 pf_bb_configツールのインストール

物理機能ブロードバンドデバイス設定ツールは、事前構築のイメージの一部として提供されません。これを使用するには、最初にインストールする必要があります。

  1. リポジトリを更新します。

              > 
              sudo
              zypper ref
  2. pf-bb-configパッケージをインストールします。

              > 
              sudo
              transactional-update pkg install pf-bb-config
  3. 場合によっては、データプレーン開発キットの使用が必要になることがあります。これをインストールするには、次のコマンドを実行します。

              > 
              sudo
              transactional-update --continue pkg install dpdk
  4. システムを再起動します。

              > 
              sudo
              reboot

3 pf_bb_configの使用方法

pf_bb_configツールを実行するには、次のコマンドを使用します。

      # 
      pf_bb_config DEVICE_NAME [-h] [-c PATH_TO_CONFIG_FILE] [-p PCI_ID] [-v VFIO_TOKEN] [-f FFT_LUT_FILE]

引数とオプションには次の意味があります。

DEVICE_NAME

デバイス名は必須です。

-h

ヘルプを出力します。

-c PATH_TO_CONFIG_FILE

特定のBBデバイスに使用する設定ファイルを渡します。設定例は/opt/pf-bb-config/にインストールされます。これらの例の詳細については、3.2項 「設定例の説明」を参照してください。

-p PCI_ID

設定するデバイスのPCI IDを指定します。

-v VFIO_TOKEN

uuidコマンドを使用して取得できるVFIOトークンを指定します。

            # 
            uuid=$(cat /proc/sys/kernel/random/uuid)

その後、これを表示するには、次のコマンドを実行します。

            # 
            echo $uuid
-f FFT_LUT_FILE

このオプションを使用すると、代替のFFT LUTファイルを指定できます。指定されていない場合は、デフォルトのものが使用されます。

3.1 vfio-pciモジュールの使用

デバイスがハードウェアリソースに直接アクセスできるようにするには、vfio-pciドライバを使用する必要があります。先に進む前に、次の条件が満たされていることを確認してください。

  • vfio-pciモジュールが組み込まれている。

  • Intel™ VT-dがカーネルとUEFIで有効にされ、IOMMUで実装されている。

  • IOMMUがランタイムに有効になる。これを確認するには、次のコマンドを実行します。

                > 
                sudo
                dmesg | grep "DMAR: IOMMU"
  • DPDKがインストールされている。

上記の条件が満たされている場合は、以下で説明するようにvfio-pciドライバを有効にすることができます。

  1. vfio-pciモジュールは、起動時に自動的にロードされます。モジュールにパラメータを渡すだけで済みます。これには、次の3つの方法があります。

    • カーネルCLIで以下のパラメータを渡します。

      vfio_pci.enable_sriov=1 vfio_pci.disable_idle_d3=1
    • システムが完全に起動した後、必要なパラメータを設定します。

                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/enable_sriov
                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/disable_idle_d3
    • または、modprobeを使用して、次のパラメータを指定してモジュールをロードすることもできます。

                      # 
                      modprobe vfio-pci enable_sriov=1 disable_idle_d3=1
  2. PFをvfio-pciモジュールにバインドします。

    > sudoPATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESS
  3. pf_bb_configツールを使用してデバイスを設定します。

                > 
                sudo
                ./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
    
  4. たとえば、デバイス上に2つのVFを作成します。

                > 
                sudo
                echo 2 | sudo tee /sys/bus/pci/devices/0000:$PF_PCI_DEVICE_ADDRESS/sriov_numvfs

3.2 設定例の説明

ブロードバンドデバイスの設定例は、/opt/pf-bb-configにあります。各デバイスには特定の設定ファイルのセットがありますが、すべての設定ファイルは同じ形式に従います。

[section name]
key = value
; This is a comment.

次のセクションでは、ACC100/ACC200アクセラレータについて詳しく説明します。

3.2.1 ACC100/ACC200の設定

/opt/pf-bb-config/acc*の例では、次の属性を調整できます。

pf_mode_en

1に設定すると、デバイス上のすべてのキューが物理機能(PF)に割り当てられ、仮想機能(VF)には割り当てられません。PFとVFは相互に排他的です。

num_qgroups

すべての操作に割り当てることができる8つのキューグループがあります。

num_vf_bundles

1~16の値を選択します。その後、使用可能なDDRが分割されます。

num_aqs_per_groups

1つのキューグループ内のアトミックキューの最大数を定義します。