SWIOTLB completo

Per le operazioni di input/output del disco e della rete, la VM con accesso riservato utilizza un'area specifica in memoria chiamata Software Input Output Translation Lookaside Buffer (SWIOTLB), che ha una dimensione predefinita di 64 MB. L'SWIOTLB fa parte della RAM totale disponibile sul guest.

Per verificare se un'istanza VM con accesso riservato ha riscontrato l'errore swiotlb buffer is full, connettiti all'istanza ed esegui il seguente comando per eseguire query sui log dmesg:

dmesg | grep 'swiotlb buffer is full'

Per risolvere il problema, aumenta le dimensioni di SWIOTLB. Prima di aumentare le dimensioni, assicurati che il guest disponga di RAM sufficiente per SWIOTLB e il sistema operativo.

Aumentare le dimensioni di SWIOTLB

  1. Per aumentare le dimensioni del file SWIOTLB, aggiungi la seguente riga a /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
    

    L'esempio seguente mostra come aumentare le dimensioni dell'SWIOTLB a 512 MB:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
    

    In base alla versione di Ubuntu, devi aggiornare la stringa nel file grub. Ad esempio, se utilizzi Ubuntu 18.04, devi aggiornare la stringa GRUB_CMDLINE_LINUX anziché la stringa GRUB_CMDLINE_LINUX_DEFAULT.

  2. Esegui il seguente comando per rigenerare grub.cfg:

    Ubuntu

    sudo update-grub
    

    Altre distribuzioni

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

Per ulteriori informazioni, vedi Come aumentare il limite SWIOTLB.