跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / 使用 pf_bb_config 配置基带设备的物理功能

使用 pf_bb_config 配置基带设备的物理功能

出版日期:2025-03-20
内容

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 模块会在系统引导期间自动加载,您只需将参数传递给该模块。可以通过以下三种方式执行此操作:

    • 在内核 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. 例如,在设备上创建两个虚拟功能:

                > 
                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

定义单个队列组中原子队列的最大计数。