Version 4.0 of QEMU has been released

Written about 1 year ago by IanDorfman

QEMU, the popular open source machine emulator and virtualizer available for Small Linux kernel iconLinux kernel, Small macOS iconmacOS, and Small Windows 10 iconWindows 10, has reached its version 4.0 release milestone.

According to the blog post announcing this release, version 4.0 contains over 3,100 commits from 220 different authors.

Because the amount of changes is absolutely massive, a full list of changes made in the 4.0 release can be found here. A list of several highlighted features can be found below.

Highlights include:

  • 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)