使用 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 模块会在系统引导期间自动加载,您只需将参数传递给该模块。可以通过以下三种方式执行此操作:
在内核 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_ADDRESS使用
pf_bb_config
工具配置设备:>
sudo
./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
例如,在设备上创建两个虚拟功能:
>
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
共有八个队列组,供您分配给所有操作。
-
num_vf_bundles
请选择 1 到 16 之间的一个值。可用的 DDR 随即拆分。
-
num_aqs_per_groups
定义单个队列组中原子队列的最大计数。
4 法律声明 #
版权所有 © 2006–2025 SUSE LLC 和贡献者。保留所有权利。
根据 GNU 自由文档许可证 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可证附带不可变部分。许可版本 1.2 的副本包含在题为“GNU Free Documentation License”的部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。