Changes:
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.
Block devices
* New device "nvme" provides a PCI device that implements the NVMe standard.
* Fix for a possible data loss on crashes with IDE disks (due to mishandling of FLUSH requests)
Device assignment
* Legacy PCI assignment supports CPU affinity for MSI interrupts.
USB
* The XHCI (USB 3.0) controller supports live migration.
PCI
* ACPI hotplug of devices behind a PCI bridge is supported.
ARM
* The 32-bit ARMv8 LDA/STL instructions for load-acquire/store-release are supported (only with -cpu any); the remainder of the new v8 instructions will follow in a future release.
* The vexpress-a9 and vexpress-a15 boards have experimental support for virtio devices via a virtio-mmio transport. Note that the virtio command lines used with x86 systems won't work as they will create PCI virtio devices; use the devices "virtio-blk-device", "virtio-net-device", etc instead. Note that this functionality may change in future releases.
* The -initrd option now accepts ramdisks with a U-Boot header.
* A model of the Calxeda ECX-2000 / Midway system is now supported ("midway").
PPC
* Mac OS X guests supported (10.2-10.4 for PPC, 10.4 for PPC64)
* pSeries guests support live migration and savevm.
s390x
* If the kernel supports it, virtio-ccw supports ioeventfd and vhost when running on KVM.
* The dump-guest-memory command is supported.
SPARC
* Sun4c and Sun4d architectures and related CPUs were not fully implemented and have been removed.
* 24-bit display mode works
x86
* Firmware can be exposed to the guest as a flash device (using -pflash) also when running on KVM.
* In addition to the "xenfv" machine type, which is kept for backwards compatibility, Xen can now use the pc machine type (including versioned machine types) using "-M pc -machine accel=xen". Note that using PV-on-HVM drivers requires "-M pc -machine accel=xen -device xen-platform".
* QEMU can expose the full set of ACPI tables to the guest: See Features/ACPITableGeneration
* Conroe, Penryn and Nehalem CPUs have had their CPUID values fixed
* "-M isapc" now works on KVM too.
* -pflash can be used with KVM too.
more...
pkgsrc changes:
- remove now unnecessary SUBST for audio.h conflicts
- update PLIST for new files
- adjust patches for hw directory reorganization
- update counting semaphore patches per comments on qemu-devel
Upstream changes:
Changes mentioned in 1.5.1 announcement:
http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg04798.html
295d81c: Update VERSION for 1.5.1 release (Anthony Liguori)
cc0bd7e: wdt_i6300esb: fix vmstate versioning (Michael Roth)
12e5b2b: virtio-rng: Fix crash with non-default backend (Cole Robinson)
cb55efe: iscsi: reorganize iscsi_readcapacity_sync (Paolo Bonzini)
1b94fc4: iscsi: simplify freeing of tasks (Paolo Bonzini)
5e690bb: vhost-scsi: fix k->set_guest_notifiers() NULL dereference (Stefan
Hajnoczi)
129db36: scsi-disk: scsi-block device for scsi pass-through should not be
removable (Pavel Hrdina)
637d640: scsi-generic: check the return value of bdrv_aio_ioctl in
execute_command (Pavel Hrdina)
9c4f5dd: scsi-generic: fix sign extension of READ CAPACITY(10) data (Paolo
Bonzini)
3abd71c: scsi: reset cdrom tray statuses on scsi_disk_reset (Pavel Hrdina)
5fcb9bf: nbd: strip braces from literal IPv6 address in URI (Jan Tomko)
6c8cf5f: qemu-socket: allow hostnames starting with a digit (Jan Tomko)
ce4e8f0: vmdk: byteswap VMDK4Header.desc_offset field (Stefan Hajnoczi)
c683f1b: target-i386: cpu: Fix potential buffer overrun in
get_register_name_32() (Igor Mammedov)
75e4aa9: pc: Fix crash when attempting to hotplug CPU with negative ID (Igor
Mammedov)
055a7fc: smbios: Check R in -smbios type=0, release=R parses okay (Markus
Armbruster)
93bc624: smbios: Fix -smbios type=0, release=... for big endian hosts (Markus
Armbruster)
61fbaee: smbios: Clean up smbios_add_field() parameters (Markus Armbruster)
685ee2d: smbios: Convert to error_report() (Markus Armbruster)
fa0f47d: log.h: Supply missing includes (Markus Armbruster)
7552569: error-report.h: Supply missing include (Markus Armbruster)
02d2672: tcg-ppc64: rotr_i32 rotates wrong amount (Anton Blanchard)
2917f6b: tcg-ppc64: Fix add2_i64 (Anton Blanchard)
9534f66: tcg-ppc64: bswap64 rotates output 32 bits (Anton Blanchard)
d208f05: tcg-ppc64: Fix RLDCL opcode (Anton Blanchard)
6b6f105: ivshmem: add missing error exit(2) (Stefan Hajnoczi)
3202c02: Makefile: Install qemu-img and qemu-nbd man pages only if built
(Andreas Farber)
5a893b0: tap: fix NULL dereference when passing invalid parameters to tap
(Jason Wang)
0817fa9: create qemu_openpty_raw() helper function and move it to a separate
file (Michael Tokarev)
5810174: blockdev: reset werror/rerror on drive_del (Stefan Hajnoczi)
eeaa8d3: q35: set fw_name (Michael S. Tsirkin)
c127070: target-i386: Fix aflag logic for CODE64 and the 0x67 prefix (Richard
Henderson)
252a7c6: qemu-char: don't issue CHR_EVENT_OPEN in a BH (Michael Roth)
6f3718c: xilinx_axidma: Do not set DMA .notify to NULL after notify (Wendy
Liang)
1fb147f: virtio-ccw: Fix unsetting of indicators. (Cornelia Huck)
72762f2: s390x/css: Fix concurrent sense. (Cornelia Huck)
31ba701: ui/gtk.c: Fix *BSD build of Gtk+ UI (Brad Smith)
9ca80c7: vmxnet3: fix NICState cleanup (Stefan Hajnoczi)
a548bac: Fix usage of USB_DEV_FLAG_IS_HOST flag. (Michael Marineau)
9b5751e: host-libusb: Correct test for USB packet state (Ed Maste)
032ce1b: qdev: fix get_fw_dev_path to support to add nothing to fw_dev_path
(Amos Kong)
baa8a8b: do not check pointers after dereferencing them (Paolo Bonzini)
327e75b: xen: start PCI hole at 0xe0000000 (same as pc_init1 and
qemu-xen-traditional) (Stefano Stabellini)
9e7fdaf: Remove OSS support for OpenBSD (Brad Smith)
d503afb: target-i386: fix abort on bad PML4E/PDPTE/PDE/PTE addresses (Luiz
Capitulino)
5b3ca29: update seabios to release 1.7.2.2 (Gerd Hoffmann)
7b9cdc5: Revert "roms: switch oldnoconfig to olddefconfig" (Gerd Hoffmann)
0565700: ide: Set BSY bit during FLUSH (Andreas Farber)
ddaa83e: chardev: fix "info chardev" output (Gerd Hoffmann)
38ec6c1: xen_machine_pv: do not create a dummy CPU in machine->init (Stefano
Stabellini)
951411f: main_loop: do not set nonblocking if xen_enabled() (Stefano Stabellini)
5c26608: xen: simplify xen_enabled (Stefano Stabellini)
3541912: qom/object: Don't poll cast cache for NULL objects (Peter Crosthwaite)
749806d: rtl8139: flush queued packets when RxBufPtr is written (Stefan
Hajnoczi)
a6fc2cd: hw/9pfs: use O_NOFOLLOW for mapped readlink operation (Aneesh Kumar
K.V)
eabdf85: hw/9pfs: Fix segfault with 9p2000.u (Aneesh Kumar K.V)
Changelog 1.5:
http://wiki.qemu.org/ChangeLog/1.5
General
-------
- The default for log output enabled via the '-d' command line switch is now
standard error rather than a file. You can obtain the previous behaviour
using the '-D' command line switch to specify a file to send the logging to.
- QEMU now uses poll rather than select, and thus does not have any
restriction on the number of open file descriptors.
System emulation
----------------
Device emulation
Audio
- The --audio-card-list configure option is not used anymore. Instead, you
can modify default-configs/pci.mak (for the PCI soundcards AC97, HDA and
ES1370) and default-configs/sound.mak (for the ISA soundcards) before
running "make".
- The "shortcut" -soundhw option is now available for all targets that have
a PCI bus.
Device assignment
- VFIO supports primary VGA passthrough using the experimental "x-vga=on"
option. The following devices seem to work: Nvidia 8400gs, 73001e, NVS290;
ATI/AMD Radeon HD5450 and HD7850.
- VFIO devices support the bootindex= property to override the default boot
order for assigned PCI devices.
USB
- Experimental support for USB 3.0 streams, both in the nec-usb-xhci
controller and in the usb-uas USB-attached SCSI device emulation.
- USB device passthrough has been rewritten to use libusb. For Linux, the
two backends can be compiled in a single QEMU executable (if libusb is
enabled, usb-host-linux will be the legacy implementation, usb-host will
be the libusb-based one; if libusb is disabled, usb-host will be the
legacy implementation). For BSD, it has to be chosen at configure time
using --enable/disable-libusb (the default is to use libusb if it is
available, otherwise use the legacy implementation).
SCSI
- QEMU can now emulate the VMware PVSCSI device using "-device pvscsi".
- QEMU can now use tcm_vhost, a virtio-scsi device model based on the
Linux-iSCSI implementation of SCSI.
Network cards
- QEMU can now emulate the VMware paravirtualized network card using
"-device vmxnet3".
ARM
- This release has initial support of KVM for the ARM architecture.
This requires a 3.9 or better Linux kernel and a Cortex-A15 CPU.
- The Zynq board provides a SD host controller interface.
- The PCI controller model for VersatilePB and Realview boards has been
significantly improved in functionality (including MMIO BAR support and
a correct PCI IRQ mapping). Note that Linux kernels currently do not take
advantage of this; however we autodetect kernels that expect the behaviour
of an old broken QEMU and fall back to that. (The old IRQ behaviour can
be forced with "-global versatile_pci.broken-irq-mapping=1" if absolutely
necessary.)
- Incorrect handling of the SRS instruction in Thumb mode has been fixed.
- Performance of TCG emulation of ARM targets is improved over previous
releases.
- Migration and vm save/load now works correctly on the vexpress-a15 and
vexpress-a9 models.
PPC
- Various improvements to TCG code generation
- KVM synchronizes more state
- Fix a few issues that blocked Mac OS X from working (still not 100% there
though!)
- Refactoring and improvement of soft mmu emulation for book3s
- Implement various new instructions for ISA 2.05 and ISA 2.06 compatibility
(-cpu POWER7)
- Implement support for KVM based e500 family watchdog
s390x
- Various accuracy fixes for device emulation
- Faster I/O hypercalls
- Add firmware to boot from virtio-ccw disks
- Guest kernel panics are notified to the host
SPARC
- Improve sun4u interrupt mapping, so that multiple PCI devices can be used
simultaneously
x86
- x86 supports emulation of a TPM (Trusted Platform Module) on machines
that have a hardware TPM
- Various speedups in TCG emulation of x86
- The iPXE ROMs that are distributed with QEMU support EFI
- TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.
- A paravirtual device is included that lets the guest notifies kernel
panics to the host.
- CPU hot-add support with cpu-add QMP command. More details
Features/CPUHotplug.
- new CPU properties "feature-words" and "filtered-features" to allow
introspection of supported and not supported CPU features.
- For reference and examples of how the new properties can be used by
libvirt and other components, see:
http://wiki.qemu.org/Features/CPUModels#Interfaces.2Frequirements_for_libvirt
QMP
- QEMU now generates a DEVICE_DELETED event when the guest acknowledges
a device hot-unplug operation.
- Much better handling for non-ASCII codepoints in JSON strings
Character devices
- Character devices gained support for flow control. More details in
Features/ChardevFlowControl
- All kinds of character devices can now be hot-plugged. Character device
hotplug is also supported from the "human" monitor.
Block devices
- IDE and SCSI disks always have the ability to issue "discard" (aka TRIM or
UNMAP) commands. However, by default "discard" commands are silently
ignored as they can cause performance degradation and fragmentation.
To enable them, the "-drive" option now supports a "discard" suboption;
the default value is "ignore" (or its synonym "off"), and the other valid
value is "unmap" (or "on").
- Sheepdog drives can also be specified with URIs.
- iSCSI disks support on-line resizing using block_resize. Similar to block
devices, the resize has to be done first outside QEMU.
- Various performance improvements in qcow2 internal snapshots (savevm).
- The NBD backend has improved latency.
- qemu-nbd can now skip image format probing using the -f/--format
command-line option.
- VHDX (MS Hyper-V) image format has initial read-only support. Dynamic and
fixed sized disks are supported, but not differencing images (e.g. VHDX
images with a backing file). Read-only is strictly enforced, and the
'readonly=on' option must be used for any VHDX images.
- Secure Shell (ssh) support. Access remote disks over ssh using
qemu -drive file=ssh://host/path/to/file
Live Migration
- Further improvements in throughput (up to +130%: 4.2 Gbps in 1.5 vs
1.8 Gbps in 1.4) and latency.
User interface
- QEMU now provides a GTK+ interface. The interface uses the VTE library
to provide better terminal emulation for serial consoles and the monitor.
- A new VNC extension has been added to communicate LED state changes for
the keyboard.
VNC
- Websocket connections can now be encrypted with TLS.
User-mode emulation
-------------------
- Threaded programs are now more stable, though still experimental.
Guest agent
-----------
- New commands in qemu-ga let the host put CPUs online/offline with help
from the guest OS (Linux only)
- Low impact CVE-2013-2007 ("qemu: guest agent creates files with insecure
permissions in daemon mode") is fixed.
- Note for guest administrators: unix domain sockets, logfiles etc.
created by previous versions of qemu-ga do not have their file mode
bits reset by this change; only newly created files have mode 0600
when daemonizing. Please delete your old files or change their
permissions manually when upgrading.
- The guest-file-open QMP command continues to create files with mode
0666 for compatibility reasons.
Host support
------------
- QEMU is now a lot faster on Windows hosts than in previous versions
- libcacard has been ported to Windows.
Known issues
- The GTK+ backend does not compile on BSD systems (including Mac OS X).
This will likely be fixed in a later stable update.
2013-07-09 17:00:58 +00:00
Renamed from emulators/qemu/patches/patch-eg (Browse further)