Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Configuração do dispositivo de banda base de função física com pf_bb_config

Configuração do dispositivo de banda base de função física com pf_bb_config

Data de Publicação: 20/03/2025
O QUE É?

A ferramenta pf_bb_config utiliza determinados arquivos de configuração para personalizar e controlar as funções físicas de vários dispositivos de banda base.

POR QUÊ?

Este artigo se concentra na instalação e no uso da ferramenta pf_bb_config.

DEDICAÇÃO

A leitura do artigo leva aproximadamente 10 minutos.

META

Você saberá como configurar dispositivos de banda larga e permitir acesso direto ao hardware para máquinas virtuais.

REQUISITOS

Uma instância registrada em execução do SUSE Linux Micro.

1 O que é o comando pf_bb_config?

O pf_bb_config é uma ferramenta que permite configurar dispositivos de banda larga no sistema host. A ferramenta acessa o espaço de configuração e define parâmetros usando operações de leitura e de gravação de E/S mapeadas em memória (MMIO, Memory-Mapped I/O).

Os parâmetros de configuração do dispositivo de banda larga específicos são analisados de um arquivo de configuração fornecido e específico a esse dispositivo.

2 Instalando a ferramenta pf_bb_config

A ferramenta de configuração de dispositivos de banda larga de função física não é fornecida como parte das imagens predefinidas. Para usá-la, você precisa instalá-lo primeiro:

  1. Atualize os repositórios:

              > 
              sudo
              zypper ref
  2. Instale o pacote pf-bb-config:

              > 
              sudo
              transactional-update pkg install pf-bb-config
  3. Em determinados casos, talvez seja necessário usar o Kit de Desenvolvimento do Plano de Dados. Para instalá-lo, execute:

              > 
              sudo
              transactional-update --continue pkg install dpdk
  4. Reinicialize o sistema:

              > 
              sudo
              reboot

3 Uso do pf_bb_config

Para executar a ferramenta pf_bb_config, use o seguinte comando:

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

Em que os argumentos e as opções têm o seguinte significado:

DEVICE_NAME

O nome do dispositivo é obrigatório.

-h

Para imprimir a ajuda.

-c PATH_TO_CONFIG_FILE

Fornece o arquivo de configuração que será usado para o dispositivo BB específico. Os exemplos de configuração são instalados em /opt/pf-bb-config/. Para obter detalhes sobre esses exemplos, consulte a Seção 3.2, “Descrição dos exemplos de configuração”.

-p PCI_ID

Especifique o ID de PCI do dispositivo que será configurado.

-v VFIO_TOKEN

Forneça um token VFIO que possa ser obtido usando o comando uuid:

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

Em seguida, para exibi-lo:

            # 
            echo $uuid
-f FFT_LUT_FILE

Usando a opção, você pode fornecer um arquivo FFT LUT alternativo. Se não for especificado, o padrão será usado.

3.1 Usando o módulo vfio-pci

Para permitir o acesso direto do dispositivo a recursos de hardware, você precisa usar o driver vfio-pci. Antes de prosseguir, verifique se as seguintes condições foram atendidas:

  • O módulo vfio-pci está incorporado.

  • O Intel™ VT-d está habilitado no kernel e na UEFI e implementado no IOMMU.

  • O IOMMU está habilitado em runtime. Para verificar isso, execute o comando:

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

Se as condições acima foram atendidas, você pode habilitar o driver vfio-pci conforme descrito abaixo.

  1. O módulo vfio-pci é carregado automaticamente durante a inicialização. Você precisa apenas passar os parâmetros para o módulo. Você pode fazer isso de três maneiras:

    • Passe os seguintes parâmetros na CLI do kernel:

      vfio_pci.enable_sriov=1 vfio_pci.disable_idle_d3=1
    • Defina os parâmetros necessários após a inicialização completa do sistema:

                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/enable_sriov
                      # 
                      echo 1 | sudo tee /sys/module/vfio_pci/parameters/disable_idle_d3
    • Ou use o modprobe para carregar o módulo com estes parâmetros:

                      # 
                      modprobe vfio-pci enable_sriov=1 disable_idle_d3=1
  2. Vincule a PF ao módulo vfio-pci:

    > sudoPATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESS
  3. Configure o dispositivo usando a ferramenta pf_bb_config:

                > 
                sudo
                ./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
    
  4. Por exemplo, crie duas VFs no dispositivo:

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

3.2 Descrição dos exemplos de configuração

Você encontra exemplos de configuração de dispositivos de banda larga em /opt/pf-bb-config. Cada dispositivo tem um conjunto específico de arquivos de configuração; no entanto, todos os arquivos de configuração seguem o mesmo formato.

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

A seção a seguir apresenta detalhes sobre o acelerador ACC100/ACC200.

3.2.1 A configuração do ACC100/ACC200

Nos exemplos em /opt/pf-bb-config/acc*, você pode ajustar os seguintes atributos:

pf_mode_en

Se definido como 1, todas as filas no dispositivo serão atribuídas a funções físicas (PFs, Physical Functions), e nenhuma será atribuída a funções virtuais (VFs, Virtual Functions). A PF e a VF são mutuamente exclusivas.

num_qgroups

Há oito grupos de filas disponíveis que você pode alocar para todas as operações.

num_vf_bundles

Escolha um valor entre 1 e 16. O DDR disponível é dividido.

num_aqs_per_groups

Define a contagem máxima das filas atômicas em um único grupo de filas.