ChangeLog/4.0

From QEMU
Revision as of 18:12, 18 February 2019 by Armbru (talk | contribs) (→‎Monitor)

System emulation

Incompatible changes

  • The "handle" option to -fsdev and -virtfs has been removed. The "local" or "proxy" options should be used instead.
  • The "-virtioconsole" option has been removed. Use "-device virtconsole" instead.
  • The "-no-frame" option has been removed. It was only usable with SDL1.2, and support for this library has been suspended now.
  • The "-enable-hax" option has been removed. Use "-accel hax" instead.
  • The legacy "ivshmem" device has been removed. Use "ivshmem-doorbell" or "ivshmem-plain" instead.
  • The x86 machine types "pc-0.10" and "pc-0.11" have been removed. Use a newer machine type instead.

New deprecated options and features

  • cpu-add QMP/HMP command
  • machine-types pc-0.12, pc-0.13, pc-0.14 and pc-0.15
  • qemu-nbd --partition=N option

Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.

Alpha

68k

Arm

  • Allow AArch64 processors to boot from a kernel placed over 4GB into RAM
  • arm: Implement the ARMv8.1-HPD extension
  • arm: Implement the ARMv8.2-AA32HPD extension
  • arm: Implement the ARMv8.1-LOR extension (as the trivial "no limited ordering regions provided" minimum)
  • arm: Implement the ARMv8.3-PAuth extension
  • Implement Armv8.5-BTI extension for system emulation mode
  • Support TBI (top-byte-ignore) properly for linux-user mode
  • The micro:bit board now boots simple MicroPython programs since device emulation for the timer, GPIO, NVMC and RNG has been added
  • The cubieboard model now implements the 'A' SRAM
  • The BLK_MAX register in the TZ MPC device now reports the correct value
  • The u-boot "noload" image type is now supported for the Arm virt board
  • stm32f2xx_usart: Do not update data register when device is disabled
  • virt board ACPI tables: COHACC override flag now correctly set in IORT SMMUv3 node
  • AArch32 exception return is fixed to permit a switch from Mon->Hyp mode
  • ftgmac100: implement the new MDIO interface on Aspeed SoC
  • Emulation of the ARM PMU has been improved
  • New machine mps2-an521 -- this is a model of the AN521 FPGA image for the MPS2 devboard
  • Fix various places where we failed to UNDEF invalid A64 instructions
  • Don't UNDEF a valid FCMLA on 32-bit inputs
  • Make FPSCR/FPCR trapped-exception bits RAZ/WI
  • Fixed a bug in handling clearing of FPSCR/FPSR exception status bits
  • armv7m_nvic: Allow byte accesses to SHPR1 register

linux-user: support HWCAP_CPUID which exposes ID registers to user code

HPPA

Microblaze

MIPS

  • MTTCG support.
  • Build for MIPS n32 hosts fixed.

Nios2

OpenRISC

PowerPC

  • sam460ex can now have 2GB memory

RISC-V

  • The virt board now supports PCI and USB.
  • The FS field of mstatus now supports three states (dirty, clean, and off).
  • The TSR, TW, and TVM fields of mstatus are now implemented.
  • The misa CSR is now writable.

s390

  • vfio-ap now no longer inhibits usage of memory ballooners
  • zPCI devices now provide some instruction counters to the guest (for a Linux guest, check /sys/kernel/debug/pci/<function>/statistics)
  • zPCI devices are now explicitly marked as unmigratable. No change in functionality, migration support for zPCI devices had never been implemented.
  • The 'zpci' feature bit is now indicated by default in the 'qemu' cpu model.
  • The z14 cpu model now includes the multiple epoch and PTFF enhancement features per default.
  • A cpu model for the z14 GA 2 has been added.

SH

SPARC

TileGX

Tricore

x86

  • The HAX accelerator is now supported for POSIX hosts other than Darwin, including Linux and NetBSD.

Xtensa

Device emulation and assignment

ACPI

Audio

Block devices

  • IDE/via: Implement PCI IDE mode
  • virtio-blk: DISCARD and WRITE_ZEROES support

Graphics

Input devices

IPMI

Network devices

  • pvrdma: Add support for RDMA MAD
  • pvrdma: Removed the dev-caps-max-sge parameter

NVDIMM

PCI/PCIe

SCSI

SMBIOS

TPM

USB

VFIO

virtio

Xen

fw_cfg

9pfs

Audio

Character devices

  • The "wait" option for the socket backend is now forbidden for client sockets. It previously had no functional effect except for server sockets.
  • The "reconnect" option for the socket backend is now forbidden for server sockets. It previously had no functional effect except for client sockets.

Crypto subsystem

  • The block storage encryption backends are now capable of using multiple threads for encryption/decryption

GUI

  • Support for building against SDL1.2 has been deleted. SDL2 should be used instead.
  • The VNC server will no longer accidentally delete its UNIX listener socket when clients disconnect

Host support

Memory backends

Monitor

  • QMP can now execute a few commands "out of band". This is useful for postcopy recovery. For details, see docs/interop/qmp-spec.txt.
  • query-qmp-schema reflects QEMU's build configuration more closely. For instance, stuff related to replication is properly absent when QEMU was built with --disable-replication, and stuff specific to other targets is properly absent.
  • QMP events SHUTDOWN and RESET now carry a reason
  • New QMP command query-current-machine
  • QMP/HMP command system_wakeup now fails when the guest isn't suspended, or doesn't even support suspend.
  • QMP/HMP command cpu-add is now deprecated
  • New QMP commands block-dirty-bitmap-enable, block-dirty-bitmap-disable, and block-dirty-bitmap-merge, plus enhancements to transaction, nbd-server-add, query-block, and block-dirty-bitmap-add, allow a management application to perform incremental backups with an NBD client as a consumer learning which portions of the disk were changed while the bitmap was enabled. The experimental commands x-block-dirty-bitmap-enable, x-block-dirty-bitmap-disable, x-block-dirty-bitmap-merge and x-nbd-server-add-bitmap were removed in favor of the stable commands.

Migration

Network

Block devices and tools

  • Improved tracing and error diagnostics for NBD code
  • Fix infinite loop in DMG image format
  • A new qemu-nbd --bitmap option allows the exposure of a persistent dirty bitmap for a qcow2 image not in use by a guest, in a simpler manner than the older procedure of using QMP commands to a temporary qemu process attached to the file.
  • A new qemu-nbd --list option enables the ability to probe a remote NBD server for information about what it is exporting.
  • The qemu-nbd --partition=N option has been deprecated; it does not support GPT partitions, and has always been broken for MBR logical partition 6 and beyond. Its functionality of exporting a subset of the guest-visible data can still be accomplished with --image-opts driver=raw,offset=X,size=Y.
  • qemu-img info now displays information about persistent bitmaps stored in qcow2 files.

Tracing

  • The new qemu-trace-stap script makes it convenient to collect traces without writing SystemTap scripts. See "man qemu-trace-stap" for details.

Miscellaneous

  • QEMU's builtin gdbstub now supports the gdb multiprocess extension. Boards which have more than one cluster of CPUs (like the 'xlnx-zcu102' board when run with '-smp 6') will report them as being two processes (each of which has one thread per CPU in the cluster). You will need at least GDB 7.2. Attach to QEMU with a GDB command sequence like:
target extended :1234
add-inferior
inferior 2
attach 2
and then the "info threads" command should show 2 processes.
  • QEMU will default to KVM when compiled with --disable-tcg or when launched from an executable whose name ends with "kvm".

User-mode emulation

  • The docker.py script now checks the path and persistence status of binfmt_misc entries when installing and updating user-mode docker containers

TCG

Guest agent

Build Information

CI

GIT submodules

Build Dependencies

  • QEMU now requires at least GCC version 4.8 or Clang version 3.4 (equivalent to Clang from Xcode 5.1 on macOS) to be built
  • Running the QEMU testsuite now requires the Perl Test::Harness module. Most Linux and BSD distributions however install it by default together with Perl.

Known issues