Para las operaciones de entrada/salida de disco y de red, la VM confidencial usa un área específica de la memoria llamada búfer de anticipación de traducción de entrada/salida de software (SWIOTLB), que tiene un tamaño predeterminado de 64 MB. SWIOTLB forma parte de la RAM total disponible en el invitado.
Para comprobar si una instancia de VM confidencial ha detectado el error swiotlb buffer is full
, conéctate a la instancia y ejecuta el siguiente comando para consultar los registros de dmesg
:
dmesg | grep 'swiotlb buffer is full'
Para solucionar este problema, aumenta el tamaño de SWIOTLB. Antes de aumentar el tamaño, asegúrate de que el invitado tenga suficiente RAM para SWIOTLB y el sistema operativo.
Aumentar el tamaño de SWIOTLB
Para aumentar el tamaño de SWIOTLB, añade la siguiente línea a
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
En el siguiente ejemplo se muestra cómo aumentar el tamaño de SWIOTLB a 512 MB:
GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
En función de la versión de Ubuntu, debes actualizar la cadena en el archivo
grub
. Por ejemplo, si usas Ubuntu 18.04, debes actualizar la cadenaGRUB_CMDLINE_LINUX
en lugar de la cadenaGRUB_CMDLINE_LINUX_DEFAULT
.Ejecuta el siguiente comando para volver a generar
grub.cfg
:Ubuntu
sudo update-grub
Otras distribuciones
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfg
Reinicia la VM.
Para obtener más información, consulta Cómo aumentar el límite de SWIOTLB.