Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Configuración de dispositivos de banda base de función física mediante pf_bb_config

Configuración de dispositivos de banda base de función física mediante pf_bb_config

Fecha de publicación: 20 Mar 2025
DESCRIPCIÓN

La herramienta pf_bb_config utiliza archivos de configuración proporcionados para personalizar y controlar las funciones físicas de varios dispositivos de banda base.

INTENCIÓN

Este artículo se centra en la instalación y el uso de la herramienta pf_bb_config.

ESFUERZO

Se tardan aproximadamente 10 minutos en leer el artículo.

OBJETIVO

Sabrá cómo configurar dispositivos de banda base y cómo habilitar el acceso directo al hardware para las máquinas virtuales.

REQUISITOS

Una instancia en ejecución registrada de SUSE Linux Micro

1 ¿Qué es pf_bb_config?

pf_bb_config es una herramienta que permite configurar dispositivos de banda base en el sistema host. La herramienta accede al espacio de configuración y define los parámetros mediante operaciones de lectura y escritura de E/S asignadas en memoria (MMIO).

Los parámetros de configuración de los dispositivos de banda base se analizan a partir de un archivo de configuración proporcionado específico para ese dispositivo.

2 Instalación de la herramienta pf_bb_config

La herramienta de configuración de dispositivos de banda base de función física no se proporciona como parte de las imágenes preintegradas. Para utilizarla, primero debe instalarla:

  1. Actualice los repositorios:

              > 
              sudo
              zypper ref
  2. Instale el paquete pf-bb-config:

              > 
              sudo
              transactional-update pkg install pf-bb-config
  3. En algunos casos, puede que necesite utilizar el kit de desarrollo del plano de datos. Para instalarlo, ejecute:

              > 
              sudo
              transactional-update --continue pkg install dpdk
  4. Rearranque el sistema:

              > 
              sudo
              reboot

3 Uso de pf_bb_config

Para ejecutar la herramienta pf_bb_config, utilice el siguiente comando:

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

Donde los argumentos y las opciones tienen el siguiente significado:

DEVICE_NAME

El nombre del dispositivo es obligatorio.

-h

Imprime la ayuda.

-c PATH_TO_CONFIG_FILE

Transfiere el archivo de configuración que se debe utilizar para el dispositivo de banda base concreto. Los ejemplos de configuración se instalan en /opt/pf-bb-config/. Para obtener más información sobre estos ejemplos, consulte la Sección 3.2, “Descripción de los ejemplos de configuración”.

-p PCI_ID

Especifique el ID de PCI del dispositivo que se va a configurar.

-v VFIO_TOKEN

Proporcione un testigo VFIO que se pueda obtener mediante el comando uuid:

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

A continuación, para mostrarlo:

            # 
            echo $uuid
-f FFT_LUT_FILE

Con esta opción, puede proporcionar un archivo LUT FFT alternativo. Si no se especifica, se utiliza el valor por defecto.

3.1 Uso del módulo vfio-pci

Para habilitar el acceso directo del dispositivo a los recursos de hardware, debe utilizar el controlador vfio-pci. Antes de continuar, asegúrese de que se cumplen las siguientes condiciones:

  • El módulo vfio-pci está integrado.

  • Intel™ VT-d está habilitado en el kernel y en UEFI e implementado en IOMMU.

  • IOMMU está habilitado en el tiempo de ejecución. Para comprobarlo, ejecute el comando:

                > 
                sudo
                dmesg | grep "DMAR: IOMMU"
  • DPDK está instalado.

Si se cumplen las condiciones anteriores, puede habilitar el controlador vfio-pci como se describe a continuación.

  1. El módulo vfio-pci se carga automáticamente durante el arranque. Basta con pasar parámetros al módulo. Esto se puede realizar de tres formas:

    • Pasar los siguientes parámetros en la interfaz de línea de comandos del kernel:

      vfio_pci.enable_sriov=1 vfio_pci.disable_idle_d3=1
    • Definir los parámetros necesarios después de que el sistema se haya arrancado por completo:

                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/enable_sriov
                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/disable_idle_d3
    • O puede utilizar modprobe para cargar el módulo con estos parámetros:

                      # 
                      modprobe vfio-pci enable_sriov=1 disable_idle_d3=1
  2. Enlace el PF con el módulo vfio-pci:

    > sudoPATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESS
  3. Configure el dispositivo con la herramienta pf_bb_config:

                > 
                sudo
                ./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
    
  4. Por ejemplo, cree dos funciones virtuales en el dispositivo:

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

3.2 Descripción de los ejemplos de configuración

Puede encontrar ejemplos de configuración de dispositivos de banda base en /opt/pf-bb-config. Cada dispositivo tiene un conjunto específico de archivos de configuración; sin embargo, todos los archivos de configuración siguen el mismo formato.

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

En la siguiente sección se proporcionan detalles sobre el acelerador ACC100/ACC200.

3.2.1 Configuración de ACC100/ACC200

En los ejemplos de /opt/pf-bb-config/acc*, puede ajustar los siguientes atributos:

pf_mode_en

Si se define en 1, todas las colas del dispositivo se asignan a funciones físicas (PF) y no se asigna ninguna a funciones virtuales (VF). Las funciones físicas y las funciones virtuales son mutuamente excluyentes.

num_qgroups

Hay ocho grupos de colas disponibles que puede asignar a todas las operaciones.

num_vf_bundles

Elija un valor entre 1 y 16. El DDR disponible se divide.

num_aqs_per_groups

Define el número máximo de colas atómicas en un único grupo de colas.