QEMU, a renowned software tool that allows users to emulate different computer systems, released its latest update, v9.0. It comes packed with over 2700 commits contributed by 220 authors, introducing enhancements and new features to improve performance, scalability, and usability.
QEMU 9.0 Highlights
One of the key updates in QEMU 9.0 is in the block device handling. The virtio-blk now supports multiqueue, allowing different queues of a single disk to be processed by various I/O threads simultaneously, significantly improving performance and efficiency.
For those working with debugging, the gdbstub has seen several improvements. Notably, it now includes capabilities such as catching syscalls in user-mode, support for fork-follow modes, and enhanced handling of signal information.
Memory management has also received a notable upgrade. In some scenarios, memory backends can now be preallocated concurrently using multiple threads, streamlining operations and boosting performance.
Migration features have been expanded with support for theย “mapped-ram”ย capability. This allows for more efficient virtual machine snapshots, improved zero-page detection, and checkpoint-restart support for VFIO, all of which enhance the reliability and flexibility of VM operations.
The ARM architecture, widely used in various devices, from smartphones to servers, sees significant improvements in QEMU 9.0. This includes support for Enhanced Counter Virtualization, Nested Virtualization, and Enhanced Nested Virtualization.
New board support is also available for several devices, including the B-L475E-IOT01A IoT node and the Raspberry Pi 4 Model B.
For those working with RISC-V, this release includes support for new ISA/extensions and numerous fixes enhancing the functionality of RISC-V machines. Likewise, the s390x architecture sees improved emulation support and fixes, ensuring better performance and accuracy.
The new release can be downloadedย from QEMUโs official download page, where users can find the tarball. For those interested in the specifics, visit the release announcement or check the changelog, which details a full list of changes.