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
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îneGRUB_CMDLINE_LINUX
, et non la chaîneGRUB_CMDLINE_LINUX_DEFAULT
.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
Redémarrez la VM.
Pour en savoir plus, consultez Augmenter la limite SWIOTLB.