Voici une description courte d’un bug que j’ai rencontré sur KVM/libvirt.
Description du bug
La VM freeze en laissant tous ses processus qemu à 100% de charge. On observe autant de processus qemu à 100% que de coeurs de processeurs.
Conditions du bug
OS hôte : Debian 12
- Paquets :
- libvirt-* 9.0.0-4
- linux-image-6.1.0-11-amd64 6.1.38-4
- Configuration :
- Le serveur a d’autres services que la virtualisation
- Overprovisionning CPU : non
OS invité : Debian 12
- Paquets :
- linux-image-6.1.0-18-amd64 6.1.76-1
- nvidia-driver 525.147.05-7~deb12u1
- qemu-guest-agent 1:7.2+dfsg-7+deb12u5
- Configuration :
- PCI Passthrough d’un GPU Nvidia GTX 1050
- Mount d’un dossier partagé avec virtiofs (accessmode=passthrough)
Contournement du bug
Retrait de la section suivante dans le fichier de configuration libvirt de la VM.
1 2 3 4 5 6 7 8 9 10 11 12 |
<memoryBacking> <access mode='shared'/> </memoryBacking> (...) <filesystem type='mount' accessmode='passthrough'> <driver type='virtiofs'/> <binary path='/usr/lib/qemu/virtiofsd'/> <source dir='/data/shared'/> <target dir='shared'/> <alias name='fs0'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </filesystem> |
La configuration <access mode=’shared’> a été mise en place pour faire fonctionner virtiofs. Son existence suffit pour observer le bug, même en l’absence de configuration virtiofs. Il faut donc retirer cette configuration <access mode=’shared’>.
Autres pistes : tester la mise en place un serveur virtiofsd indépendant de libvirt sur la machine hôte.