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
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 theGRUB_CMDLINE_LINUX
string instead of theGRUB_CMDLINE_LINUX_DEFAULT
string.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
Reboot the VM.
For more information, see How to increase SWIOTLB limit.