SWIOTLB complet

Pour les opérations d'entrée et de sortie sur disque et sur le réseau, Confidential VM utilise une zone spécifique en mémoire appelée SWIOTLB (Software Input Output Translation Lookaside Buffer), dont la taille par défaut est de 64 Mo. Le SWIOTLB fait partie de la mémoire RAM totale disponible sur l'invité.

Pour vérifier si une instance de VM Confidential a rencontré l'erreur swiotlb buffer is full, connectez-vous à l'instance et exécutez la commande suivante pour interroger les journaux dmesg:

dmesg | grep 'swiotlb buffer is full'

Pour résoudre ce problème, augmentez la taille du SWIOTLB. Avant d'augmenter la taille, assurez-vous que l'invité dispose de suffisamment de RAM pour le SWIOTLB et le système d'exploitation.

Augmenter la taille du SWIOTLB

  1. Pour augmenter la taille du SWIOTLB, ajoutez la ligne suivante à /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
    

    L'exemple suivant montre comment augmenter la taille du SWIOTLB à 512 Mo:

    GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
    

    La chaîne à mettre à jour dans le fichier grub varie selon la version d'Ubuntu utilisée. Par exemple, si vous utilisez Ubuntu 18.04, vous devez mettre à jour la chaîne GRUB_CMDLINE_LINUX, et non la chaîne GRUB_CMDLINE_LINUX_DEFAULT.

  2. Exécutez la commande suivante pour générer à nouveau grub.cfg:

    Ubuntu

    sudo update-grub
    

    Autres distributions

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

Pour en savoir plus, consultez Augmenter la limite SWIOTLB.