La semaine dernière, toutes les modifications apportées à VirtIO et à Virtual Data Path Acceleration (VDPA) ont été fusionnées pour le noyau Linux 6.4. Ce qui est intéressant à partir de cette demande d’extraction, c’est qu’elle offre une amélioration importante des performances de VDUSE.
Pour ceux qui ne s’en souviennent pas, VDUSE a été fusionné avec le noyau en 2021 avec Linux 5.15. VDUSE consiste à implémenter des appareils VDPA dans l’espace utilisateur. Le framework vDPA est le code VirtIO Data Path Acceleration dans le noyau pour les appareils conformes à la spécification VirtIO mais s’appuyant sur un chemin de contrôle spécifique au fournisseur. Le framework vDPA est de plus en plus utilisé pour extraire le matériel et dissimuler certains éléments de la complexité du matériel au logiciel tout en ayant une API d’espace utilisateur unifiée en tant que périphérique VirtIO. VDUSE permet d’implémenter des appareils émulés par logiciel vDPA dans l’espace utilisateur.
Les ingénieurs de Bytedance ont travaillé ces derniers mois sur l’amélioration des performances de VDUSE. Avec un ensemble de correctifs pour atténuer les conflits de verrouillage virtqueue dans le pilote virtio-blk, Bytedance constate une amélioration des performances d’environ 50 % : de 600 000 à 900 000 IOPS dans ses tests. Les correctifs de Bytedance ajoutent également une interface sysfs pour permettre de modifier l’affinité des rappels IRQ pour chaque virtqueue VDUSE afin de faciliter le réglage des performances, ainsi qu’une interface sysfs pour définir la taille du tampon de rebond pour virtio-vdpa pour le réglage avec des charges de travail à haut débit. Le boost de 50% à lui seul est agréable tandis que ces nouveaux boutons pour un réglage plus poussé des performances sont la cerise sur le gâteau.
Les changements VirtIO/VDPA pour Linux 6.4 apportent également une réduction du taux d’interruption pour VirtIO, des améliorations d’évolutivité pour vhost-scsi et d’autres améliorations. Plus de détails sur ces changements via ce pull.
Ceux qui souhaitent en savoir plus sur VDUSE en général peut le faire via la documentation de Kernel.org.