Vollständiger SWIOTLB

Bei Laufwerk- und Netzwerkeingabe-/-ausgabevorgängen verwendet die Confidential VM einen bestimmten Bereich im Arbeitsspeicher, den „Software Input Output Translation Lookaside Buffer“ (SWIOTLB) mit einer Standardgröße von 64 MB. Der SWIOTLB ist Teil des gesamten verfügbaren RAMs auf dem Gast.

Um zu prüfen, ob bei einer Confidential VM-Instanz der Fehler swiotlb buffer is full aufgetreten ist, stellen Sie eine Verbindung zur Instanz her und führen Sie den folgenden Befehl aus, um die dmesg-Logs abzufragen:

dmesg | grep 'swiotlb buffer is full'

Erhöhen Sie die SWIOTLB-Größe, um dieses Problem zu beheben. Prüfen Sie vor dem Erhöhen der Größe, ob der Gast genügend RAM für den SWIOTLB und das Betriebssystem hat.

Größe des SWIOTLB erhöhen

  1. Hängen Sie die folgende Zeile an /etc/default/grub an, um die Größe des SWIOTLB zu erhöhen:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
    

    Das folgende Beispiel zeigt, wie Sie die Größe des SWIOTLB auf 512 MB erhöhen:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
    

    Abhängig von der Ubuntu-Version müssen Sie den String in der Datei grub aktualisieren. Wenn Sie beispielsweise Ubuntu 18.04 verwenden, müssen Sie den String GRUB_CMDLINE_LINUX anstelle des Strings GRUB_CMDLINE_LINUX_DEFAULT aktualisieren.

  2. Führen Sie den folgenden Befehl aus, um grub.cfg neu zu generieren:

    Ubuntu

    sudo update-grub
    

    Andere Distributionen

    grubcfg="/etc/grub2-efi.cfg"
    cp $grubcfg $grubcfg.bak
    grub2-mkconfig -o $grubcfg
    
  3. Starten Sie die VM neu.

Weitere Informationen finden Sie unter SWIOTLB-Limit erhöhen.