Die Konfiguration des Basisbandgeräts für die physische Funktion mit pf_bb_config
- WAS?
Das Tool
pf_bb_config
verwendet die bereitgestellten Konfigurationsdateien, um die physischen Funktionen verschiedener Basisbandgeräte anzupassen und zu steuern.- WARUM?
Dieser Artikel konzentriert sich auf die Installation und Verwendung des Tools
pf_bb_config
.- AUFWAND
Es dauert ungefähr 10 Minuten, um den Artikel zu lesen.
- ZIEL
Sie wissen, wie Sie Breitbandgeräte konfigurieren und den direkten Zugriff auf Hardware für virtuelle Maschinen ermöglichen.
- ANFORDERUNGEN
Eine registrierte ausgeführte Instanz von SUSE Linux Micro
1 Was ist pf_bb_config
? #
pf_bb_config
ist ein Tool, mit dem Sie Breitbandgeräte auf Ihrem Host-System konfigurieren können. Das Tool greift auf den Konfigurationsbereich zu und legt Parameter mithilfe von MMIO-Lese- und Schreibvorgängen (Memory-Mapped I/O) fest.
Die jeweiligen Konfigurationsparameter für Breitbandgeräte werden aus einer übergebenen Konfigurationsdatei analysiert, die für dieses Gerät spezifisch ist.
2 Installieren des Tools pf_bb_config
#
Das Konfigurationstool für Breitbandgeräte mit physischer Funktion wird nicht als Teil der vordefinierten Images bereitgestellt. Um es zu verwenden, müssen Sie es zuerst installieren:
Repositorys aktualisieren:
>
sudo
zypper ref
Installieren Sie das Paket
pf-bb-config
:>
sudo
transactional-update pkg install pf-bb-config
In bestimmten Fällen müssen Sie möglicherweise das Data Plane Development Kit verwenden. Um es zu installieren, führen Sie Folgendes aus:
>
sudo
transactional-update --continue pkg install dpdk
Booten Sie das System neu:
>
sudo
reboot
3 Verwendung von pf_bb_config
#
Führen Sie das Tool pf_bb_config
mit folgendem Kommando aus:
#
pf_bb_config DEVICE_NAME [-h] [-c PATH_TO_CONFIG_FILE] [-p PCI_ID] [-v VFIO_TOKEN] [-f FFT_LUT_FILE]
Die Argumente und Optionen haben folgende Bedeutung:
- DEVICE_NAME
Der Gerätename ist obligatorisch.
- -h
Zum Ausdrucken der Hilfe.
- -c PATH_TO_CONFIG_FILE
Übergibt die Konfigurationsdatei, die für das jeweilige BB-Gerät verwendet werden soll. Konfigurationsbeispiele werden installiert auf
/opt/pf-bb-config/
. Weitere Informationen zu diesen Beispielen finden Sie unter Abschnitt 3.2, „Beschreibung der Konfigurationsbeispiele“.- -p PCI_ID
Geben Sie die PCI-ID des zu konfigurierenden Geräts an.
- -v VFIO_TOKEN
Geben Sie ein VFIO-Token an, das mit dem Kommando
uuid
abgerufen werden kann:#
uuid=$(cat /proc/sys/kernel/random/uuid)
Dann zur Anzeige:
#
echo $uuid
- -f FFT_LUT_FILE
Mit dieser Option können Sie eine alternative FFT-LUT-Datei bereitstellen. Wenn nicht angegeben, wird die Standardeinstellung verwendet.
3.1 Verwenden des Moduls vfio-pci
#
Um den direkten Zugriff Ihres Geräts auf Hardwareressourcen zu ermöglichen, müssen Sie den vfio-pci-Treiber verwenden. Bevor Sie fortfahren, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
Das vfio-pci-Modul ist integriert.
Intel™ VT-d ist im Kernel und UEFI aktiviert und in IOMMU implementiert.
IOMMU ist zur Laufzeit aktiviert. Um dies zu überprüfen, führen Sie folgendes Kommando aus:
>
sudo
dmesg | grep "DMAR: IOMMU"
DPDK ist installiert.
Wenn die oben genannten Bedingungen erfüllt sind, können Sie den vfio-pci-Treiber wie unten beschrieben aktivieren.
Das vfio-pci-Modul wird beim Booten automatisch geladen. Sie müssen nur Parameter an das Modul übergeben. Sie können dies auf drei Arten tun:
Übergeben der folgenden Parameter in der Kernel-CLI:
vfio_pci.enable_sriov=1 vfio_pci.disable_idle_d3=1
Festlegen der erforderlichen Parameter, nachdem das System vollständig hochgefahren ist:
#
echo 1 | sudo tee /sys/module/vfio_pci/parameters/enable_sriov
#
echo 1 | sudo tee /sys/module/vfio_pci/parameters/disable_idle_d3
Oder Laden des Moduls mit
modprobe
und diesen Parametern:#
modprobe vfio-pci enable_sriov=1 disable_idle_d3=1
Binden des PF mit dem vfio-pci-Modul:
>
sudo
PATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESSKonfigurieren des Geräts mit dem Tool
pf_bb_config
:>
sudo
./pf_bb_config ACC100 -v 00112233-4455-6677-8899-aabbccddeeff -c acc100/acc100_config_2vf_4g5g.cfg
Erstellen Sie z. B. zwei VFs auf dem Gerät:
>
sudo
echo 2 | sudo tee /sys/bus/pci/devices/0000:$PF_PCI_DEVICE_ADDRESS/sriov_numvfs
3.2 Beschreibung der Konfigurationsbeispiele #
Beispiele für die Konfiguration von Breitbandgeräten finden Sie unter /opt/pf-bb-config
. Jedes Gerät verfügt über einen bestimmten Satz von Konfigurationsdateien, jedoch haben alle Konfigurationsdateien das gleiche Format.
[section name] key = value ; This is a comment.
Der folgende Abschnitt enthält Details zum ACC100/ACC200-Beschleuniger.
3.2.1 Die ACC100/ACC200-Konfiguration #
In den Beispielen /opt/pf-bb-config/acc*
können Sie die folgenden Attribute anpassen:
-
pf_mode_en
Wenn auf 1 festgelegt, werden alle Warteschlangen auf dem Gerät physischen Funktionen (PF) und keine virtuellen Funktionen (VF) zugewiesen. PF und VF schließen sich gegenseitig aus.
-
num_qgroups
Es stehen acht Warteschlangengruppen zur Verfügung, die Sie allen Vorgängen zuordnen können.
-
num_vf_bundles
Wählen Sie einen Wert zwischen 1 und 16 aus. Der verfügbare DDR wird dann aufgeteilt.
-
num_aqs_per_groups
Definiert die maximale Anzahl atomarer Warteschlangen in einer einzelnen Warteschlangengruppe.
4 Rechtliche Hinweise #
Copyright © 2006–2025 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie im Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie im https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.