QEMU version 4.0.0 Released
QEMU (short for Quick Emulator) is a free and open-source emulator that performs hardware virtualization. QEMU is a hosted virtual machine monitor: it emulates the machine’s processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems.
It also can be used with KVM to run virtual machines at near-native speed (by taking advantage of hardware extensions such as Intel VT-x). QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.
What’s New in QEMU version 4.0.0?
The below includes important changes in this version:
- ARM: ARMv8+ extensions for SB, PredInv, HPD, LOR, FHM, AA32HPD, PAuth, JSConv, CondM, FRINT, and BTI
- ARM: new emulation support for “Musca” and “MPS2” development boards
- ARM: virt: support for >255GB of RAM and u-boot “noload” image types
- ARM: improved emulation of ARM PMU
- HPPA: support for TLB protection IDs and TLB trace events
- MIPS: support for multi-threaded TCG emulation
- MIPS: emulation support for I7200 I6500 CPUs, QMP-base querying of CPU types, and improved support for SAARI and SAAR configuration registers
- MIPS: improvements to Interthread Communication Unit, Fulong 2E machine types, and end-user documentation.
- PowerPC: pseries/powernv: support for POWER9 large decrementer
- PowerPC: pseries: emulation support for XIVE interrupt controller
- PowerPC: pseries: support for hotplugging PCI host bridges (PHBs)
- PowerPC: pseries: Spectre/Meltdown mitigations enabled by default, additional support for count-cache-flush mitigation
- RISC-V: virt: support for PCI and USB
- RISC-V: support for TSR, TW, and TVM fields of mstatus, FS field now supports three stats (dirty, clean, and off)
- RISC-V: built-in gdbserver supports register lists via XML files
- s390: support for z14 GA 2 CPU model, Multiple-epoch and PTFF features now enabled in z14 CPU model by default
- s390: vfio-ap: now supports hot plug/unplug, and no longer inhibits memory ballooning
- s390: emulation support for floating-point extension facility and vector support instructions
- x86: HAX accelerator now supported POSIX hosts other than Darwin, including Linux and NetBSD
- x86: Q35: advertised PCIe root port speeds will now optimally default to maximum link speed (16GT/s) and width (x32) provided by PCIe 4.0 for QEMU 4.0+ machine types; older machine types will retain 2.5GT/x1 defaults for compatibility.
- x86: Xen PVH images can now be booted with “-kernel” option
- Xtensa: xtfpga: improved SMP support for linux (interrupt distributor, IPI, and runstall) and new SMP-capable test_mmuhifi_c3 core configuration
- Xtensa: support for Flexible length instructions extension (FLIX)
- GUI: new ‘-display spice-app’ to configure/launch a Spice client GUI with a similar UI to QEMU GTK. VNC server now supports access controls via tls-authz/sasl-authz options
- QMP: support for “out-of-band” command execution, can be useful for postcopy migration recovery. Additional QMP commands for working with block devices and dirty bitmaps
- VFIO: EDID interface for supported mdev (Intel vGPU for kernel 5.0+), allows resolution setting via xres/yres options.
- Xen: new ‘xen-disk’ device which can create a Xen PV disk backend, and performance improvements for Xen PV disk backend.
- Network Block Device: improved tracing and error diagnostics, improved client compatibility with buggy NBD server implementations, new –bitmap, –list, –tls-authz options for qemu-nbd
- virtio-blk now supports DISCARD and WRITE_ZEROES
- pvrdma device now supports RDMA Management Datagram services (MAD)
You can see the full list of new features and changes at the below link: