Configuração do dispositivo de banda base de função física com pf_bb_config
- 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:
Atualize os repositórios:
>
sudo
zypper ref
Instale o pacote
pf-bb-config
:>
sudo
transactional-update pkg install pf-bb-config
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
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.
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
Vincule a PF ao módulo vfio-pci:
>
sudo
PATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESSConfigure 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
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.
4 Informações legais #
Copyright © 2006-2025 SUSE LLC e colaboradores. Todos os direitos reservados.
Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença GNU de Documentação Livre, Versão 1.2 ou (por sua opção) versão 1.3; com a Seção Invariante sendo estas informações de copyright e a licença. Uma cópia da versão 1.2 da licença está incluída na seção intitulada “GNU Free Documentation License” (Licença GNU de Documentação Livre).
Para ver as marcas registradas da SUSE, visite https://www.suse.com/company/legal/. Todas as marcas comerciais de terceiros pertencem a seus respectivos proprietários. Os símbolos de marca registrada (®, ™ etc.) indicam marcas registradas da SUSE e de suas afiliadas. Os asteriscos (*) indicam marcas registradas de terceiros.
Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes. Entretanto, isso não garante uma precisão absoluta. A SUSE LLC, suas afiliadas, os autores ou tradutores não serão responsáveis por possíveis erros nem pelas consequências resultantes de tais erros.