ChangeLog/0.15

From QEMU

Contents

0.15.1

  • (commit) Version 0.15.1
  • (commit) qed: fix use-after-free during l2 cache commit
  • (commit) sdl: Fix termination in -no-shutdown mode
  • (commit) Fix termination by signal with -no-shutdown
  • (commit) Add support for finding libpng via pkg-config.
  • (commit) Check for presence of compiler -pthread flag.
  • (commit) Allow overriding the location of Samba's smbd.
  • (commit) Fix linker scripts
  • (commit) Fix install(1) usage to be compatible with OpenBSD's install(1).
  • (commit) Fix qjson test of solidus encoding
  • (commit) configure: Copy test data to build directory
  • (commit) monitor: fix build breakage for !CONFIG_VNC
  • (commit) monitor: fix build breakage with --disable-vnc
  • (commit) Fix forcing multicast msgs to loopback on OpenBSD.
  • (commit) user: Restore debug usage message for '-d ?' in user mode emulation

0.15.0

Targets

  • New targets added: Lattice Mico32 (LM32) and UniCore32.

ARM

  • Many bugs in Neon and other ARMv6 and ARMv7 instructions have been fixed
  • Floating point instructions now generally handle NaNs and floating point status flags correctly
  • Dummy implementations of cp15 performance counters and cp14 debug registers mean we can boot more recent Linux kernels that probe for these features
  • SA-1110/SA-1100 support has been added
  • New machine models: ARM Versatile Express (machine "vexpress-a9"), Sharp Zaurus SL-5500 (machine "collie")

LM32

  • Basic support for LM32 EVR evaluation board
  • Full-featured support for the Milkymist SoC including video rendering.
  • Almost complete opcode testsuite

SPARC

  • Sparc32: Improvements to OpenBIOS make Solaris 8 boot possible.
  • Sparc64: fix sdivx and udivx instructions, enabling booting HelenOS up to the command prompt (commit).
  • Minor Sparc32 and Sparc64 fixes.

x86

Hosts

ARM

  • Support QEMU's host C code being compiled in Thumb mode (as some gccs do by default)

KVM

Common

  • Countless fixes ported over from qemu-kvm, core is now shared with that tree, i.e. has the same quality
  • Pimped up threading model, now fully synchronized with qemu-kvm tree
  • Removed dependency on external kernel headers, all supported KVM features are now built into the binary

x86

  • Paravirtual kvmclock fixes
  • Stable guest TSC across migration
  • Support for SMEP CPU feature
  • Support for VIA CPU features
  • Reworked & fixed MCE support

Devices

virtio-serial

  • Various fixes for hot-unplug of ports
  • Disallow generic ports at id 0: port number 0 is reserved for console ports for backward compatibility; '-device virtserialport,nr=0' is now not allowed.
  • Allow re-use of a chardev after a port using it gets unplugged
  • Add trace events

RTC

  • MC146818 (for PCs): Follow host clock resets to the past immediately (instead of freezing the clock)

Balloon

  • Fix use-after-free bug that lead to qemu crash when 'balloon 0' was issued in the monitor
  • Multiple balloon devices are now forbidden; it doesn't make sense to have more than one device at a time.
  • Negative balloon values are now rejected. The previous behaviour was to silently deflate the balloon (negative values were parsed as very high positive values)
  • Fix memory leaks on exit or unplug of the virtio-balloon device
  • Fix migration after unplugging of the virtio-balloon device. Previously, the destination aborted migration for a missing section.

Block Layer

  • Added missing -drive options to the man page
  • Expose live snapshot support in QMP using the snapshot-blkdev-sync command (commit)
  • Fixed removable media support to not cache the media size. Before this fix, the guest OS would see the old CD-ROM size even after changing the medium. (commit)

qemu-img

  • qemu-img convert and rebase now support the -p option which enables progress display (commit)
  • qemu-img commit, convert and rebase now support the -t option which allows to specify a cache mode that should be used to open the image (commit)
  • The performance of qemu-img convert has been improved (commit)

Block Drivers

qcow2

  • Improved the performance of creating/deleting internal snapshots (commit)

qed

  • Support for growing images with qemu-img resize (commit)
  • Periodically flush and clear need check bit to reduce chance of leaving image files dirty on power failure (commit)
  • Fix consistency check on 32-bit hosts (commit)

VMDK

  • Support for the monolithicFlat subformat (commit)

Sheepdog

  • Can now preallocate images during creation (commit)

RBD

  • Use the higher level librbd instead of just librados (commit)

IDE Emulation

  • Added support for the TRIM command (commit)
  • Instead of the device ide-drive for both hard disks and CD-ROMs we have now separate ide-hd and ide-cd devices (commit)
  • Fixed confusion between the Busmaster IDE status register and internal error state, which could lead to crashes (commit)

CDROM Emulation

  • Many fixes to comply with ATAPI specification
  • GET_EVENT_STATUS_NOTIFICATION: Implement 'media' subcommand that helps report tray open/close, media present/absent states to guests. Newer Linux guests (kernels 2.6.38+) rely on this command to revalidate discs.
  • Major code refactoring and cleanup

virtio-blk

  • The serial number of the drive is now exposed as a qdev property (commit)

SCSI Disk Emulation

  • Instead of the device scsi-disk for both hard disks and CD-ROMs we have now separate scsi-hd and scsi-cd devices (commit)

Networking

User space (slirp)

  • Fixed DHCP support in restrict (host-only) mode
  • Ping packet forwarding to external hosts via unprivileged ICMP sockets of Linux 3.0

QMP / Monitor

  • Support for two new QMP commands: inject-nmi (commit) and snapshot-blkdev-sync (commit)
  • Fixed some issues with the JSON parser (several commits, first one here)
  • Added the guest agent (commit)

Tracing

  • Make simpletrace.py a Python module for trace analysis scripts (blog), (commit)
  • Make 'simple' backend thread-safe (commit)
  • Add tracetool --probe-prefix optional argument to prefix DTrace probe names (commit)

Linux-user

  • Added support for ppoll, sched_{g,s}etaffinity, epoll, pselect6, prlimit64 syscalls
  • Add s390x and unicore32 linux-user targets
  • Fix loading binaries from Linux/sparc64 rootfs (commit)
  • Numerous bugfixes

New build dependencies (mandatory and optional)

  • glib-2.0 (mandatory). Used only for guest agent so far, and on platforms that lack ucontext interface (e.g. BSD).
  • libcurl 7.15.4 or better (optional, required for CURL block driver support)
  • spice 0.6.0 or better (optional)
  • libnss3 (network security services from Mozilla project) (unused?). Detected and linked for --enable-smartcard-nss, but apparently not used