pf_bb_config
を使用した物理機能ベースバンドデバイスの設定
- 概要
pf_bb_config
ツールは、指定された設定ファイルを利用して、さまざまなベースバンドデバイスの物理機能をカスタマイズおよび制御します。- 目的
この記事では、
pf_bb_config
ツールのインストールと使用方法に焦点を当てています。- 所要時間
この記事の理解には10分ほどを要します。
- 目標
ブロードバンドデバイスの設定方法と、仮想マシンのハードウェアへの直接アクセスを有効にする方法を理解します。
- 要件
SUSE Linux Microの登録済み実行インスタンス
1 pf_bb_config
とは #
pf_bb_config
は、ホストシステム上でブロードバンドデバイスを設定できるツールです。このツールは、設定空間にアクセスし、メモリマップドI/O(MMIO)の読み取りおよび書き込み操作を使用してパラメータを設定します。
特定のブロードバンドデバイス設定パラメータは、そのデバイスに固有の渡された設定ファイルから解析されます。
2 pf_bb_config
ツールのインストール #
物理機能ブロードバンドデバイス設定ツールは、事前構築のイメージの一部として提供されません。これを使用するには、最初にインストールする必要があります。
リポジトリを更新します。
>
sudo
zypper ref
pf-bb-config
パッケージをインストールします。>
sudo
transactional-update pkg install pf-bb-config
場合によっては、データプレーン開発キットの使用が必要になることがあります。これをインストールするには、次のコマンドを実行します。
>
sudo
transactional-update --continue pkg install dpdk
システムを再起動します。
>
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ドライバを有効にすることができます。
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
PFをvfio-pciモジュールにバインドします。
>
sudo
PATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESSpf_bb_config
ツールを使用してデバイスを設定します。>
sudo
./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
たとえば、デバイス上に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つのキューグループ内のアトミックキューの最大数を定義します。
4 法的事項 #
Copyright © 2006–2025 SUSE LLC and contributors. All rights reserved.
この文書は、GNUフリー文書ライセンスのバージョン1.2または(オプションとして)バージョン1.3の条項に従って、複製、頒布、および/または改変が許可されています。ただし、この著作権表示およびライセンスは変更せずに記載すること。ライセンスバージョン1.2のコピーは、「GNUフリー文書ライセンス」セクションに含まれています。
SUSEの商標については、https://www.suse.com/company/legal/を参照してください。その他の第三者のすべての商標は、各社の所有に帰属します。商標記号(®、™など)は、SUSEおよび関連会社の商標を示します。アスタリスク(*)は、第三者の商標を示します。
本書のすべての情報は、細心の注意を払って編集されています。しかし、このことは正確性を完全に保証するものではありません。SUSE LLC、その関係者、著者、翻訳者のいずれも誤りまたはその結果に対して一切責任を負いかねます。