QEMU 7.1 implémente des améliorations avec le transfert de mémoire sous Linux
La sortie de QEMU version 7.1 a été annoncée, apportant de nombreuses améliorations pour divers émulateurs , notamment pour ARM et RISC-V, ainsi qu'une optimisation des transferts de mémoire sous Linux. Plus de 7.1 2800 modifications ont été apportées par 238 développeurs en vue de cette version.
Pour ceux qui découvrent QEMU, sachez qu'il vous permet d'exécuter un programme conçu pour une plate-forme matérielle sur un système avec une architecture complètement différente, par exemple en exécutant une application ARM sur un PC compatible x86.
En mode virtualisation dans QEMU, les performances d'exécution de code dans un environnement isolé sont similaires à celles d'un système matériel du fait de l'exécution directe des instructions sur le CPU et de l'utilisation de l'hyperviseur Xen ou du module KVM.
Principales nouveautés de QEMU 7.1
Dans cette nouvelle version présentée pour Linux, l'option zero-copy-send est implémentée , ce qui permet l'organisation des transferts de pages mémoire pendant la migration à chaud sans mise en mémoire tampon intermédiaire.
De plus, QMP (QEMU Machine Protocol) permet désormais d'utiliser la commande `block-export-add` pour exporter des images NBD avec des données de page à l'état « modifié ». Les nouvelles commandes `query-stats` et `query-stats-schema` permettent également d'interroger les statistiques de différents sous-systèmes QEMU.
Autre nouveauté notable de cette version de QEMU : l’agent invité bénéficie d’une meilleure compatibilité avec la plateforme Solaris et intègre désormais les commandes « guest-get-diskstats » et « guest-get-cpustats » pour afficher l’état des disques et du processeur. Les informations SMART NVMe sont désormais disponibles via la commande « guest-get-disks », et les informations relatives au type de bus NVMe via la commande « guest-get-fsinfo ».
De plus, un nouvel émulateur LoongArch a été ajouté pour prendre en charge la version 64 bits de l'architecture de jeu d'instructions LoongArch (LA64). Cet émulateur est compatible avec les processeurs Loongson 3 5000 et les ponts nord Loongson 7A1000.
En outre, il est également souligné que l' émulateur ARM a implémenté de nouveaux types de machines émulées : Aspeed AST1030 SoC, Qualcomm et AST2600/AST1030 (fby35), en plus d'ajouter la prise en charge de l'émulation des processeurs Cortex-A76 et Neoverse-N1, ainsi que des extensions de processeur SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) et des commandes pour bloquer les fuites de cache internes lors de l'exécution d'instructions spéculatives dans le processeur.
L' émulateur d'architecture RISC-V a ajouté la prise en charge des nouvelles extensions de jeu d'instructions (ISA) définies dans la spécification 1.12.0, ainsi qu'une prise en charge supplémentaire de l'extension Sdtrig et une prise en charge améliorée des instructions vectorielles.
Parmi les autres changements notables de cette nouvelle version, on peut citer :
- Options de débogage améliorées.
- Ajout de la prise en charge du Trusted Platform Module (TPM) à la machine émulée 'virt' et ajout de la prise en charge Ibex SPI à la machine 'OpenTitan'.
- L'émulateur x86 pour KVM a ajouté la prise en charge de la virtualisation du mécanisme de trace LBR (Last Branch Record).
- Implémentation de l'émulation du gestionnaire d'interruptions GICv4 pour les machines 'virt'.
- L'émulateur d'architecture HPPA propose un nouveau firmware basé sur SeaBIOS v6 qui prend en charge l'utilisation d'un clavier PS/2 dans le menu de démarrage.
- Amélioration de l'émulation du port série.
- Ajout de polices de console STI supplémentaires.
- L'émulateur d'architecture MIPS pour les cartes Nios2 (-machine 10m50-ghrd) implémente l'émulation du contrôleur d'interruption vectoriel et l'ensemble de registres fantômes.
- Amélioration de la gestion des exceptions.
- Ajout de la possibilité d'utiliser jusqu'à 4 appareils UART 16550A dans l'émulateur d'architecture OpenRISC pour la machine 'or1k-sim'.
- L'émulateur d'architecture 390x prend en charge les extensions Vector-Enhancements Facility 2 (VEF 2). Le BIOS s390-ccw a la capacité de démarrer à partir de disques avec une taille de secteur autre que 512 octets.
- Ajout de la prise en charge des noyaux lx106 et des codes d'objet de test de cache à l'émulateur d'architecture Xtensa.
Enfin, si vous souhaitez en savoir plus sur les changements et les nouvelles fonctionnalités de cette nouvelle version de QEMU 7.1, vous trouverez des détails et plus d'informations sur le lien suivant.