QEMU, the popular open-source machine emulator and virtualizer, has just introduced its 9.2 release, bringing a range of noteworthy enhancements, deprecations, and removals.
Although this update includes several breaking changes, it also offers a clearer roadmap and improved support for emerging hardware features and configurations. In other words, while QEMU 9.2 might require users to adjust some of their existing setups, it ultimately aims to pave the way for a more flexible and future-proof virtualization environment.
To start with, QEMU 9.2 removes several long-deprecated features and options. For instance, the -rotate and -portrait command-line options, previously associated with PXA2xx machines, have been dropped since those machines are no longer supported.
Likewise, the old “proxy” backend for 9pfs and the accompanying virtfs-proxy-helper program have been withdrawn in favor of the “local” backend driver or the more modern virtio-fs solution. In addition, certain properties like “loaded” from โsecretโ and โtlscredsโ object types have been removed entirely, as they served no practical function.
Meanwhile, various options have now entered the deprecated category, signaling that users should prepare to transition away from them. For example, the query-migrationthreads command, the gluster backend for block devices, and the “reconnect” option for character and network devices have all been marked as deprecated.
Users are encouraged to adopt suggested replacementsโsuch as “reconnect-ms” for devicesโor explore newer strategies for block migration and I/O. Although these changes might initially seem inconvenient, QEMUโs maintainers are determined to ensure a cleaner, more consistent codebase in the long run.
From a hardware emulation perspective, the Arm architecture sees several important improvements. New CPU architectural features, like FEAT_EBF16 and FEAT_CMOW, have been introduced. Additionally, the sbsa-ref and virt boards now come equipped with System Memory Management Units (SMMUs) capable of two-stage translation, offering more powerful memory virtualization capabilities.
On macOS hosts running 15 or newer, the hvf accelerator can now handle VMs with larger memory spacesโbeyond 36-bit addressingโprovided the underlying CPU supports it. This opens the door for more substantial workloads and resource-intensive applications to run smoothly on newer Apple hardware.
Furthermore, QEMU 9.2 removes some older Arm machine types that were previously deprecated. As a result, the likes of akita, borzoi, and several others have finally been phased out. While this may be a letdown for those who have yet to update their configurations, it reflects the projectโs shift toward emphasizing more actively maintained targets and robust features.
Similarly, the CRIS target, which became nearly impossible to maintain due to lack of upstream Linux support and modern toolchains, has been removed altogether, streamlining QEMUโs support for practically relevant architectures.
On the RISC-V front, this release brings substantial progress. For example, QEMU 9.2 introduces a property to set vl to ceil(AVL/2), adds the fcsr register to the log for the F extension, and even includes improvements to vector load/store instructions.
In addition, it extends support for the AIA (Advanced Interrupt Architecture) under KVM and enables users to experiment with the IOMMU and Control Flow Integrity (CFI) extensions on RISC-V hardware. These advancements underline QEMUโs continued commitment to RISC-V as the architectureโs adoption grows in the industry.
Turning to x86, a new machine type called “nitro-enclave” makes its debut, enabling emulation of AWS Nitro Enclave environments and supporting booting from EIF (Enclave Image Format) files. This marks another step forward in meeting the demands of cloud-oriented users who need secure, isolated execution environments.
Additionally, QEMUโs KVM support now embraces AVX10 instructions, which can be configured in various ways (such as avx10-128, avx10-256, and so forth), depending on the userโs requirements and the host CPU capabilities.
In the realm of device emulation and front-end features, QEMU 9.2 enhances virtio-gpu with venus encapsulation for Vulkan, potentially improving graphics performance in specialized use cases. Meanwhile, virtio-mem now supports suspend/resume on x86-64, promising more dynamic and flexible memory allocation behavior.
On the development and process side, QEMU 9.2 introduces experimental Rust support for device models. Although not recommended yet for production use, enabling Rust-based device models is as simple as configuring QEMU with –enable-rust (given that the host system meets the required Rust compiler and bindgen versions).
It is worth noting that there are exceptions to the platform policy, and certain distributions might face challenges building QEMU with Rust enabled. Nevertheless, the inclusion of Rust marks a turning point in the projectโs development practices, possibly influencing how future QEMU features are implemented.
Lastly, for smooth building and running, QEMU now requires Meson version 1.5.0 or newer, and the new nitro-enclave machine type brings in a dependency on libcbor. Furthermore, the pycotap Python module is now included for functional testing, reflecting QEMUโs gradual shift away from older frameworks like Avocado in favor of more modern, maintainable solutions.
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 changelog, which details a full list of changes.