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_LINUX
em vez da stringGRUB_CMDLINE_LINUX_DEFAULT
.Execute o seguinte comando para regenerar
grub.cfg
:Ubuntu
sudo update-grub
Outras distribuições
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfg
Reinicie a VM.
Para mais informações, consulte o artigo Como aumentar o limite de SWIOTLB.