Full SWIOTLB

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

  1. 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 string GRUB_CMDLINE_LINUX em vez da string GRUB_CMDLINE_LINUX_DEFAULT.

  2. 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
    
  3. Reinicie a VM.

Para mais informações, consulte o artigo Como aumentar o limite de SWIOTLB.