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.

Wenn Sie prüfen möchten, 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'

Zur Behebung dieses Problems erhöhen Sie die SWIOTLB-Größe. Prüfen Sie vor dem Erhöhen der Größe, ob der Gast genügend RAM für den SWIOTLB und das Betriebssystem hat. Wenn Sie eine zu große SWIOTLB-Größe festlegen, kann die VM-Instanz die Arbeitsspeicherlimits überschreiten, was zu OOM-Fehlern (Out-of-Memory) oder Startfehlern führen kann.

SWIOTLB-Größe 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 grub-Datei aktualisieren. Wenn Sie beispielsweise Ubuntu 18.04 verwenden, müssen Sie den GRUB_CMDLINE_LINUX String anstelle des GRUB_CMDLINE_LINUX_DEFAULT Strings 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 How to increase SWIOTLB limit.