Full SWIOTLB

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

  1. 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 cadena GRUB_CMDLINE_LINUX en lugar de la cadena GRUB_CMDLINE_LINUX_DEFAULT.

  2. 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
    
  3. Reinicia la VM.

Para obtener más información, consulta Cómo aumentar el límite de SWIOTLB.