ChangeLog/1.7

From QEMU

System emulation

Device emulation

Audio

  • The HDA device emulation now includes a mixer by default. Previously this had to be enabled with the configure argument "--enable-mixemu" when building QEMU.
  • Audio will work correctly on systems without OSS (/dev/dsp). On previous versions, those systems needed special arguments to "configure" for audio to work out of the box.
  • Audio honors the QEMU_AUDIO_TIMER_PERIOD environment variable and has less CPU utilization by default than previous versions.

Block devices

  • Support for the LSI 53C810 SCSI HBA, which unlike the 895A is supported on some very old Windows NT versions.

Device assignment

  • VFIO now supports setting CPU affinity on MSI interrupts.
  • VFIO can now reset assigned devices much more reliably using either PCI function-level reset (FLR), power management, or a reset (done by the kernel) of the parent bridge.
  • Several improvements to the reliability of using option ROMs for devices that are assigned with VFIO.

USB

  • Performance and functionality improvements for USB 3.0.

MicroBlaze

  • Can now specify an initrd on the command line.

PowerPC

  • PowerPC now supports the dump-guest-memory command.

s390x

  • The "nmi" command will trigger a crash dump from kdump, using a RESTART interrupt.
  • The SCLP line-mode console ("operating system messages") can be accessed with "-device sclplmconsole".

x86

  • ACPI tables can be generated by QEMU and can be used by firmware directly. This will in the future enable new features without modifications of all firmware components (SeaBIOS, OVMF, CoreBoot)
  • Initial support for supporting more than 1TB of RAM (but firmware does not yet support this).
  • Xen HVM domains can now resume from suspend-to-RAM (S3) state.

Monitor

  • Subcommands (like "info block") can now autocomplete their options.
  • Help for a single subcommand can be printed with a monitor command such as "help info block".
  • New commands "blockdev-snapshot-internal-sync", "blockdev-snapshot-delete-internal-sync" improve support for internal qcow2 snapshot.
  • New command "blockdev-add" provides a QMP interface for block device hotplug.

Block devices

  • The throttling algorithm has been rewritten; the new code is more robust, and supports configuration of separate limits for sustained I/O vs. I/O bursts

Migration

  • Migration was broken from QEMU <= 1.5 to 1.6; the new release fixes it.

User-mode emulation

  • M68K ColdFire emulation supports atomic system calls.

Block devices, qemu-img, qemu-io

  • The sheepdog driver supports automatic reconnect after network errors
  • The VMDK driver supports files produced by VMWare ESX.
  • The qcow2 driver can detect some cases of corruption, and will prevent writing to a corrupted image.
  • The VHDX driver supports creating and writing .vhdx images.
  • The metadata of a file (where each sector of the guest image is stored in the file on the host) can be dumped in human-readable or JSON format using a new command "qemu-img map".

Guest agent

  • The "filesystem freeze/thaw" commands are now supported on Windows too, where they will invoke the native Volume Shadow Copy Service (VSS).

Miscellaneous

  • For targets that have no embedded disassembler, QEMU will now produce hexadecimal dumps instead of just emitting an error when a disassembly is requested. The enclosed script disas-objdump.pl can be used, together with an external objdump program, to convert the dump to a readable disassembly.

Host support

  • TCG now runs on x32 hosts.

Known issues

  • On Win32, QEMU must be compiled with --disable-coroutine-pool to work around a suspected compiler bug.
  • The GTK terminal windows (monitor, serial console, parallel, ...) are still unusable in TCG mode: they lose characters and can raise deadlocks.