Configuración de dispositivos de banda base de función física mediante pf_bb_config
- 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:
Actualice los repositorios:
>
sudo
zypper ref
Instale el paquete
pf-bb-config
:>
sudo
transactional-update pkg install pf-bb-config
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
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.
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
Enlace el PF con el módulo vfio-pci:
>
sudo
PATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESSConfigure 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
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.
4 Información legal #
Copyright © 2006 –2025 SUSE LLC y colaboradores. Reservados todos los derechos.
Está permitido copiar, distribuir y modificar este documento según los términos de la licencia de documentación gratuita GNU, versión 1.2 o (según su criterio) versión 1.3. Esta información de copyright y licencia deberán permanecer inalterados. En la sección titulada “GNU Free Documentation License” (Licencia de documentación gratuita GNU) se incluye una copia de la versión 1.2 de la licencia.
Para obtener información sobre las marcas comerciales de SUSE, consulte https://www.suse.com/company/legal/. Todas las marcas comerciales de otros fabricantes son propiedad de sus respectivas empresas. Los símbolos de marcas comerciales (®, ™, etc.) indican marcas comerciales de SUSE y sus filiales. Los asteriscos (*) indican marcas comerciales de otros fabricantes.
Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LLC, ni sus filiales, ni los autores o traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse.