Release of the QEMU 7.2 emulator

The release of the QEMU 7.2 project is presented. As an emulator, QEMU allows you to run a program built for one hardware platform on a system with a completely different architecture, for example, run an ARM application on an x86-compatible PC. In the virtualization mode in QEMU, the performance of code execution in an isolated environment is close to a hardware system due to the direct execution of instructions on the CPU and the use of the Xen hypervisor or KVM module.

The project was originally created by Fabrice Bellard to allow Linux executables built for the x86 platform to run on non-x86 architectures. Over the years of development, full emulation support has been added for 14 hardware architectures, the number of emulated hardware devices has exceeded 400. In preparation for version 7.2, more than 1800 changes have been made from 205 developers.

Key improvements added in QEMU 7.2:

  • Added support for AVX, AVX86, F2C, FMA16, and VAES instructions to the x3 architecture emulator in the classic TCG code generator, as well as performance optimizations related to the use of SSE instructions. Added support for KVM exit tracking mechanism ("notify vmexit"), which allows to bypass errors in the CPU that can lead to a hang.
  • The ARM emulator supports CPU Cortex-A35 and processor extensions ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardware control of the access flag and the "dirty" state) and E0PD (Preventing EL0 Access to Shared Address Maps).
  • LoongArch emulator adds support for fw_cfg DMA, memory hot plugging, and TPM (Trusted Platform Module) device emulation.
  • The OpenRISC architecture emulator implements the 'virt' platform for device testing and use in continuous integration systems. Implemented support for multi-threaded execution of the classic TCG (Tiny Code Generator) code generator.
  • The RISC-V architecture emulator in the emulated 'virt' machines now has the ability to boot firmware from pflash in S-mode. Improved work with device tree.
  • The 390x architecture emulator provides support for the MSA5 extension (Message-Security-Assist Extension 5 with PRNO instruction for generating pseudo-random numbers), KIMD/KLM instructions (an implementation of SHA-512), and extended zPCI interpretation for guests based on the KVM hypervisor.
  • Backends for working with memory provide pre-allocation of memory, taking into account the NUMA architecture.
  • Enhanced checking of LUKS encrypted block device headers, added the ability to create LUKS images on macOS.
  • In the 9pfs backend, which allows using the Plan 9 network file system for accessing one virtual machine to another, a switch was made to using the GHashTable hash in the identifier table, which in some situations led to a performance increase of 6-12 times.
  • Added new netdev backends stream and dgram.
  • Support for FreeBSD has been added to the ARM-based guest agent.
  • GUI builds for macOS provide the ability to include Cocoa- and SDL/GTK-based interfaces in a single executable file.
  • Removed built-in submodule "slirp", instead of which it is recommended to use the system library libslirp.
  • Due to a lack of testing capability, support has been deprecated for host systems with 32-bit MIPS processors using "Big endian" byte order.

Source: opennet.ru

Add a comment