Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / Die Konfiguration des Basisbandgeräts für die physische Funktion mit pf_bb_config

Die Konfiguration des Basisbandgeräts für die physische Funktion mit pf_bb_config

Veröffentlicht: 20.03.2025
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:

  1. Repositorys aktualisieren:

              > 
              sudo
              zypper ref
  2. Installieren Sie das Paket pf-bb-config:

              > 
              sudo
              transactional-update pkg install pf-bb-config
  3. 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
  4. 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.

  1. 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
  2. Binden des PF mit dem vfio-pci-Modul:

    > sudoPATH_TO_DPDK/usertools/dpdk-devbind.py --bind=vfio-pci $PCI_DRIVER_ADDRESS
  3. Konfigurieren 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
    
  4. 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.