Full SWIOTLB

For disk and network input/output operations, Confidential VM uses a specific area in memory called the Software Input Output Translation Lookaside Buffer (SWIOTLB), which has a default size of 64 MB. The SWIOTLB is part of the total available RAM on the guest.

To check if a Confidential VM instance has encountered the swiotlb buffer is full error, connect to the instance and run the following command to query the dmesg logs:

dmesg | grep 'swiotlb buffer is full'

To resolve this issue, increase the SWIOTLB size. Before increasing the size, ensure that the guest has enough RAM for the SWIOTLB and the operating system.

Increase the SWIOTLB size

  1. To increase the size of the SWIOTLB, append the following line to /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
    

    The following example shows how to increase the size of the SWIOTLB to 512 MB:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
    

    Based on the Ubuntu version, you need to update the string in the grub file. For example, if you use Ubuntu 18.04, you need to update the GRUB_CMDLINE_LINUX string instead of the GRUB_CMDLINE_LINUX_DEFAULT string.

  2. Run the following command to regenerate grub.cfg:

    Ubuntu

    sudo update-grub
    

    Other distros

    grubcfg="/etc/grub2-efi.cfg"
    cp $grubcfg $grubcfg.bak
    grub2-mkconfig -o $grubcfg
    
  3. Reboot the VM.

For more information, see How to increase SWIOTLB limit.