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 eine Confidential VM-Instanz den Fehler swiotlb buffer is full erkannt hat, 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.
SWIOTLB-Größe erhöhen
Hängen Sie die folgende Zeile an
/etc/default/gruban, 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
grubaktualisieren. Wenn Sie beispielsweise Ubuntu 18.04 verwenden, müssen Sie den StringGRUB_CMDLINE_LINUXanstelle des StringsGRUB_CMDLINE_LINUX_DEFAULTaktualisieren.Führen Sie den folgenden Befehl aus, um
grub.cfgneu zu generieren:Ubuntu
sudo update-grubAndere Distributionen
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfgStarten Sie die VM neu.
Weitere Informationen finden Sie unter SWIOTLB-Limit erhöhen.