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
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 StringGRUB_CMDLINE_LINUX
anstelle des StringsGRUB_CMDLINE_LINUX_DEFAULT
aktualisieren.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
Starten Sie die VM neu.
Weitere Informationen finden Sie unter SWIOTLB-Limit erhöhen.