Release of the QEMU 4.1 emulator

Submitted by project release QEMU 4.1. 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 the native 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 4.1, more than 2000 changes have been made from 276 developers.

Key improvements, added in QEMU 4.1:

  • Support for Hygon Dhyana and Intel SnowRidge CPU models has been added to the x86 architecture emulator. Added emulation of the RDRAND extension (hardware pseudo-random number generator). Added flags
    md-clear and mds-no to control attack protection MDS (Microarchitectural Data Sampling) on ​​Intel processors. Added the ability to determine integrated circuit topologies using the “-smp ...,dies=” flag. Versioning has been implemented for all x86 CPU models;

  • The SSH block driver has been moved from using libssh2 on libssh;
  • The virtio-gpu driver (virtual GPU developed as part of the project Virgil) added support for moving 2D/3D rendering operations to an external vhost-user process (for example, vhost-user-gpu);
  • The ARM architecture emulator has added support for the ARMv8.5-RNG extension for generating pseudo-random numbers. Support for FPU emulation has been implemented for Cortex-M family chips and problems with FPU emulation for Cortex-R5F have been resolved. A new system for setting build options, designed in the Kconfig style, has been proposed. For SoC Exynos4210, support for PL330 DMA controllers has been added;
  • The MIPS architecture emulator has improved support for MSA ASE instructions when using big-endian byte order and aligned the handling of division by zero cases with reference hardware. The performance of emulation of MSA instructions for integer calculations and permutation operations has been increased;
  • The PowerPC architecture emulator now supports forwarding to NVIDIA V100/NVLink2 GPUs using VFIO. For pseries, acceleration of XIVE interrupt controller emulation has been implemented and support for hot plugging of PCI bridges has been added. Optimizations have been made to the emulation of vector instructions (Altivec/VSX);
  • A new hardware model has been added to the RISC-V architecture emulator - “spike”. Added support for ISA 1.11.0. The 32-bit system call ABI has been improved, invalid instruction handling has been enhanced, and the built-in debugger has been improved. Added support for CPU topology in device tree;
  • The s390 architecture emulator has added support for emulating all vector instructions of the “Vector Facility” group and added additional elements to support gen15 systems (including added support for the AP Queue Interruption Facility for vfio-ap). Implemented BIOS support for booting from ECKD DASD bound to the guest system via vfio-ccw;
  • In the SPARC architecture emulator for sun4m systems, problems with using the “-vga none” flag for OpenBIOS have been resolved;
  • The Tensilica Xtensa family processor emulator includes options for MPU (memory protection unit) and exclusive access;
  • The “-salvage” option has been added to the “qemu-img convert” command to disable the crash of the image conversion process in case of I/O errors (for example, can be used to restore partially damaged qcow2 files). In a team
    “qemu-img rebase” works when a backing file has not yet been created for the input file;

  • Added the ability to redirect output organized using the "semihosting" technology (allows the emulated device to use stdout, stderr and stdin to create files on the host side) to the chardev backend ("-semihosting-config enable=on,target=native,chardev=[ ID]");
  • Added support for the seSparse subformat in read-only mode in the VMDK block driver;
  • Added support for the SiFive GPIO controller in the GPIO emulation driver.

Source: opennet.ru

Add a comment