Per le operazioni di input/output del disco e della rete, la VM confidential utilizza un'area specifica della memoria denominata Software Input Output Translation Lookaside Buffer (SWIOTLB), che ha una dimensione predefinita di 64 MB. SWIOTLB fa parte della RAM totale disponibile sull'ospite.
Per verificare se un'istanza di VM confidential ha riscontrato l'errore swiotlb buffer is full, connettiti all'istanza ed esegui il seguente comando per eseguire una query sui log dmesg:
dmesg | grep 'swiotlb buffer is full'
Per risolvere il problema, aumenta le dimensioni di SWIOTLB. Prima di aumentare le dimensioni, assicurati che l'ospite abbia RAM sufficiente per SWIOTLB e il sistema operativo. L'impostazione di una dimensione SWIOTLB eccessivamente grande può causare il superamento dei limiti di memoria dell'istanza VM, con conseguenti errori di memoria insufficiente (OOM) o errori di avvio.
Aumentare le dimensioni di SWIOTLB
Per aumentare le dimensioni di SWIOTLB, aggiungi la seguente riga a
/etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"Il seguente esempio mostra come aumentare le dimensioni di SWIOTLB a 512 MB:
GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"A seconda della versione di Ubuntu, devi aggiornare la stringa nel file
grub. Ad esempio, se utilizzi Ubuntu 18.04, devi aggiornare laGRUB_CMDLINE_LINUXstringa anziché laGRUB_CMDLINE_LINUX_DEFAULTstringa.Esegui il seguente comando per rigenerare
grub.cfg:Ubuntu
sudo update-grubAltre distribuzioni
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfgRiavvia la VM.
Per ulteriori informazioni, consulta Come aumentare il limite SWIOTLB.