Configuration de périphériques de bande de base à fonctions physiques à l'aide de pf_bb_config
- CONTENU
L'outil
pf_bb_config
utilise des fichiers de configuration donnés pour personnaliser et contrôler les fonctions physiques de divers périphériques de bande de base.- MOTIF
Cet article se concentre sur l'installation et l'utilisation de l'outil
pf_bb_config
.- EFFORT
La lecture de l'article prend environ 10 minutes.
- OBJECTIF
Vous saurez comment configurer des périphériques à large bande et comment activer l'accès direct au matériel pour les machines virtuelles.
- CONDITIONS REQUISES
Une instance de SUSE Linux Micro enregistrée en cours d'exécution.
1 Qu'est-ce que pf_bb_config
? #
pf_bb_config
est un outil qui vous permet de configurer des périphériques à large bande sur votre système hôte. L'outil accède à l'espace de configuration et définit les paramètres à l'aide d'opérations de lecture et d'écriture des E/S mappées en mémoire (MMIO).
Les paramètres de configuration d'un périphérique à large bande particulier sont analysés à partir d'un fichier de configuration transmis spécifique à ce périphérique.
2 Installation de l'outil pf_bb_config
#
L'outil de configuration des périphériques à large bande à fonctions physiques n'est pas fourni avec les images prédéfinies. Pour l'utiliser, vous devez d'abord l'installer :
Rafraîchissez les dépôts :
>
sudo
zypper ref
Installez le paquet
pf-bb-config
:>
sudo
transactional-update pkg install pf-bb-config
Dans certains cas, vous devrez peut-être utiliser le kit de développement de plan de données DPDK. Pour l'installer, exécutez :
>
sudo
transactional-update --continue pkg install dpdk
Redémarrez le système :
>
sudo
reboot
3 Utilisation de pf_bb_config
#
Pour exécuter l'outil pf_bb_config
, utilisez la commande suivante :
#
pf_bb_config DEVICE_NAME [-h] [-c PATH_TO_CONFIG_FILE] [-p PCI_ID] [-v VFIO_TOKEN] [-f FFT_LUT_FILE]
Les arguments et options de cette commande ont la signification suivante :
- DEVICE_NAME
Le nom du périphérique est obligatoire.
- -h
Permet d'imprimer l'aide.
- -c PATH_TO_CONFIG_FILE
Transmet le fichier de configuration à utiliser pour le périphérique à large bande concerné. Des exemples de configuration sont installés dans
/opt/pf-bb-config/
. Pour plus de détails sur ces exemples, reportez-vous à la Section 3.2, « Description des exemples de configuration ».- -p PCI_ID
Spécifiez l'ID PCI du périphérique à configurer.
- -v VFIO_TOKEN
Fournissez un jeton VFIO qui peut être obtenu à l'aide de la commande
uuid
:#
uuid=$(cat /proc/sys/kernel/random/uuid)
Exécutez ensuite la commande suivante pour l'afficher :
#
echo $uuid
- -f FFT_LUT_FILE
À l'aide de cette option, vous pouvez fournir un autre fichier FFT LUT. Si elle n'est pas spécifiée, le fichier par défaut est utilisé.
3.1 Utilisation du module vfio-pci
#
Pour activer l'accès direct de votre périphérique aux ressources matérielles, vous devez utiliser le pilote vfio-pci. Avant de poursuivre, assurez-vous que les conditions suivantes sont remplies :
Le module vfio-pci est intégré.
Intel™ VT-d est activé dans le kernel et UEFI, et implémenté dans IOMMU.
IOMMU est activé lors de l'exécution. Pour vérifier cela, exécutez la commande suivante :
>
sudo
dmesg | grep "DMAR: IOMMU"
DPDK est installé.
Si les conditions ci-dessus sont remplies, vous pouvez activer le pilote vfio-pci comme décrit ci-dessous.
Le module vfio-pci est chargé automatiquement lors du démarrage. Il vous suffit de transmettre des paramètres au module. Pour ce faire, vous avez trois possibilités :
Transmettez les paramètres suivants à l'interface de ligne de commande du kernel :
vfio_pci.enable_sriov=1 vfio_pci.disable_idle_d3=1
Définissez les paramètres requis après le démarrage complet du système :
#
echo 1 | sudo tee /sys/module/vfio_pci/parameters/enable_sriov
#
echo 1 | sudo tee /sys/module/vfio_pci/parameters/disable_idle_d3
Ou vous pouvez utiliser
modprobe
pour charger le module avec ces paramètres :#
modprobe vfio-pci enable_sriov=1 disable_idle_d3=1
Liez la fonction physique au module vfio-pci :
>
sudo
PATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESSConfigurez le périphérique à l'aide de l'outil
pf_bb_config
:>
sudo
./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
Par exemple, créez deux fonctions virtuelles sur le périphérique :
>
sudo
echo 2 | sudo tee /sys/bus/pci/devices/0000:$PF_PCI_DEVICE_ADDRESS/sriov_numvfs
3.2 Description des exemples de configuration #
Vous trouverez des exemples de configuration de périphériques à large bande dans /opt/pf-bb-config
. Chaque périphérique possède un ensemble spécifique de fichiers de configuration, mais tous les fichiers de configuration suivent le même format.
[section name] key = value ; This is a comment.
La section suivante fournit des détails sur l'accélérateur ACC100/ACC200.
3.2.1 La configuration ACC100/ACC200 #
Dans les exemples /opt/pf-bb-config/acc*
, vous pouvez ajuster les attributs suivants :
-
pf_mode_en
Si cet attribut est défini sur 1, toutes les files d'attente du périphérique sont assignées à des fonctions physiques (PF) et aucune n'est assignée à des fonctions virtuelles (VF). PF et VF s'excluent mutuellement.
-
num_qgroups
Il existe huit groupes de files d'attente que vous pouvez allouer à toutes les opérations.
-
num_vf_bundles
Choisissez une valeur comprise entre 1 et 16. La mémoire DDR disponible est ensuite divisée.
-
num_aqs_per_groups
Définit le nombre maximal de files d'attente atomiques dans un groupe de files d'attente unique.
4 Mentions légales #
Copyright © 2006–2025 SUSE LLC et contributeurs. Tous droits réservés.
Il est autorisé de copier, distribuer et/ou modifier ce document conformément aux conditions de la licence de documentation libre GNU version 1.2 ou (à votre discrétion) 1.3, avec la section permanente qu'est cette mention de copyright et la licence. Une copie de la version de licence 1.2 est incluse dans la section intitulée « Licence de documentation libre GNU ».
Pour les marques commerciales SUSE, consultez le site Web https://www.suse.com/company/legal/. Toutes les autres marques de fabricants tiers sont la propriété de leur détenteur respectif. Les symboles de marque (®, ™, etc.) désignent des marques commerciales de SUSE et de ses sociétés affiliées. Des astérisques (*) désignent des marques commerciales de fabricants tiers.
Toutes les informations de cet ouvrage ont été regroupées avec le plus grand soin. Cela ne garantit cependant pas sa complète exactitude. Ni SUSE LLC, ni les sociétés affiliées, ni les auteurs, ni les traducteurs ne peuvent être tenus responsables des erreurs possibles ou des conséquences qu'elles peuvent entraîner.