Para operações de entrada/saída de disco e rede, a VM confidencial usa uma área específica na memória denominada Software Input Output Translation Lookaside Buffer (SWIOTLB), que tem um tamanho predefinido de 64 MB. O SWIOTLB faz parte da RAM total disponível no convidado.
Para verificar se uma instância de VM confidencial encontrou o erro swiotlb buffer is full, ligue-se à instância e execute o seguinte comando para consultar os registos dmesg:
dmesg | grep 'swiotlb buffer is full'
Para resolver este problema, aumente o tamanho do SWIOTLB. Antes de aumentar o tamanho, certifique-se de que o convidado tem RAM suficiente para o SWIOTLB e o sistema operativo.
Aumente o tamanho da SWIOTLB
Para aumentar o tamanho do SWIOTLB, acrescente a seguinte linha a
/etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"O exemplo seguinte mostra como aumentar o tamanho da SWIOTLB para 512 MB:
GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"Com base na versão do Ubuntu, tem de atualizar a string no ficheiro
grub. Por exemplo, se usar o Ubuntu 18.04, tem de atualizar a stringGRUB_CMDLINE_LINUXem vez da stringGRUB_CMDLINE_LINUX_DEFAULT.Execute o seguinte comando para regenerar
grub.cfg:Ubuntu
sudo update-grubOutras distribuições
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfgReinicie a VM.
Para mais informações, consulte o artigo Como aumentar o limite de SWIOTLB.