ChangeLog/0.14: Difference between revisions

From QEMU
m (→‎IDE / AHCI: Fixed a typo)
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''QEMU 0.14.0 IS NOT YET RELEASED'''
= 0.14.1 =
* Version 0.14.1 {{git|56a60dd6d619877e9957ba06b92d2f276e3c229d}}
* virtio-blk: fail unaligned requests {{git|76c9b330e3cf1454f2661e6f01942b04e2d81ae1}}
* qed: Fix consistency check on 32-bit hosts {{git|9b33410d3bdd40b6a289c6b79d40a96b129e22af}}
* exit if -drive specified is invalid instead of ignoring the "wrong" -drive {{git|419f1c3503967d85d304d776a1af85b7780fed80}}
* vhost: fix dirty page handling {{git|fc5c4a7a63d80af7f4862e4965dd4ffcaedbf69a}}
* Do not delete BlockDriverState when deleting the drive {{git|22da30fc281c73e352aabe88af5e7714bf7d5cc0}}
* vnc: tight: Fix crash after 2GB of output {{git|f8a4bf59fe40c0a01368673f7e5d530714f1aacc}}
* lan9118: Ignore write to MAC_VLAN1 register {{git|b3d657bce4a99f7494a1b52ed14bd22b6a288e46}}
* Don't allow multiwrites against a block device without underlying medium {{git|a0af597d00c27741a0bf99720209def055f45499}}
* lsi53c895a: add support for ABORT messages {{git|d4b4ba03e86eeb697f04bf1173c29530e77e0ce5}}
* virtio-pci: fix bus master work around on load {{git|6f162b368f6af3836c78c01d1dff299fc275367f}}
* fix applesmc REV key {{git|b25a1bbcda04cc5b14e804f0c135e0e2708d6881}}
* rbd: don't link with -lcrypto {{git|3d19c4e338e3281cf91bf29f32e8624bda3cc14c}}
* net: Add the missing option declaration of "vhostforce" {{git|2288eb3af2506a6950a6e3993c0e0cd0b0ad212b}}
* lsi53c895a: Update dnad when skipping MSGOUT bytes {{git|ecebecffe3cbf73bd1a02148c186c0611a68b9b2}}
* Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels" {{git|6f9cace17abb630e9a8f82e36d94a04f66983c7c}}
* isa-bus: Remove bogus IRQ sharing check {{git|57c864b1f32986116947d5e94218ec623ce393de}}
* virtio-net: Fix lduw_p() pointer argument of wrong size {{git|4b35dfea68539b9737749bf0e70a9dd4d253544c}}
* hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS {{git|cdd8152e56422d37e0d38454552bac5bc8ce4838}}
* vnc: Fix fatal crash with vnc reverse mode {{git|74b121a007c52b435870def4b1f1e6c42042bf51}}
* qemu-char: Check for missing backend name {{git|8d610b6ba2b36bbe0159362556455b61c6566526}}
 
= 0.14.0 =
= 0.14.0 =
== Targets ==
== Targets ==
=== i386/x86_64 ===
* XXX Still need some help here!
=== ARM ===
=== ARM ===
* Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=target-arm (list of commits)]
* Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=target-arm (list of commits)]


=== MIPS ===
=== MIPS ===
* Host CPU consumption for idle guests [http://git.qemu.org/qemu.git/commit/?id=4cdc1cd137e0b98766916a7cdf2d5a9b3c6632fa (commit)]
* Host CPU consumption for idle guests {{git|4cdc1cd137e0b98766916a7cdf2d5a9b3c6632fa}}
* Timer fixes [http://git.qemu.org/qemu.git/commit/?id=b1dfe6437c776f6441cf8b71c706f32f2456c530 (commit)] [http://git.qemu.org/qemu.git/commit/?id=e027e1f075afe36698ce55d86f01b7817707c8b6 (commit)] [http://git.qemu.org/qemu.git/commit/?id=55807224561b9ac278bb65960b6c12666fd30db9 (commit)]
* Timer fixes {{git|b1dfe6437c776f6441cf8b71c706f32f2456c530}} {{git|e027e1f075afe36698ce55d86f01b7817707c8b6}} {{git|55807224561b9ac278bb65960b6c12666fd30db9}}
* FPU improvements [http://git.qemu.org/qemu.git/commit/?id=084d19ba718a08d434dc44a83ff01f3152d59635 (commit)]
* FPU improvements {{git|084d19ba718a08d434dc44a83ff01f3152d59635}}


=== SH4 ===
=== SH4 ===
* Various bug fixes and improvements including [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=sh4 (list of commits)]
* Various bug fixes and improvements including [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=sh4 (list of commits)]
** SM501 2D engine copyrect support, needed to boot recent kernels [http://git.qemu.org/qemu.git/commit/?id=07d8a50cb0e096c5cdc5a81b8030e40833664dd3 (commit)]
** SM501 2D engine copyrect support, needed to boot recent kernels {{git|07d8a50cb0e096c5cdc5a81b8030e40833664dd3}}
** MMU mmaped TLB access, needed to boot recent kernels [http://git.qemu.org/qemu.git/commit/?id=c0f809c46aa271f29a9e6268cdeda1f21301a8ef (commit)]
** MMU mmaped TLB access, needed to boot recent kernels {{git|c0f809c46aa271f29a9e6268cdeda1f21301a8ef}}
** Floating point exceptions and correct NaN support.
** Floating point exceptions and correct NaN support.


=== PPC ===
=== PPC ===
* Fix running recent PPC64 kernels [http://git.qemu.org/qemu.git/commit/?id=f844c817d726cd2bdb431aa41c8217891ede2eaf (commit)]
* Fix running recent PPC64 kernels {{git|f844c817d726cd2bdb431aa41c8217891ede2eaf}}
* New maintainer: Alexander Graf [http://git.qemu.org/qemu.git/commit/?id=42a876582906b1765db1c97152c967bc15401f84 (commit)]
* New maintainer: Alexander Graf {{git|42a876582906b1765db1c97152c967bc15401f84}}
* Improve interrupt injection with KVM [http://git.qemu.org/qemu.git/commit/?id=fc87e185302a96c2675a1c3a86ca47c6a2d657ff (commit)]
* Improve interrupt injection with KVM {{git|fc87e185302a96c2675a1c3a86ca47c6a2d657ff}}
* Enable PV enabled guests for speedup with KVM [http://git.qemu.org/qemu.git/commit/?id=419ef5f1c6a9614e8ddcb0b0f826de692e7e4a43 (commit)] [http://git.qemu.org/qemu.git/commit/?id=45024f094c223e8096f366520414cdf1a74dbff3 (commit)]
* Enable PV enabled guests for speedup with KVM {{git|419ef5f1c6a9614e8ddcb0b0f826de692e7e4a43}} {{git|45024f094c223e8096f366520414cdf1a74dbff3}}
* Floating point fixes
* Floating point fixes
* Add a ppc-440x5 Xilinx model [http://git.qemu.org/qemu.git/commit/?id=95070372f7477f44add9af9b55970ae1b92c3100 (commit)]
* Add a ppc-440x5 Xilinx model {{git|95070372f7477f44add9af9b55970ae1b92c3100}}
* Add a virtex5 ml507 refdesign board for ppc-440x5 [http://git.qemu.org/qemu.git/commit/?id=2c50e26efdb7e405ecacf89e6a57a60179226dd8 (commit)]
* Add a virtex5 ml507 refdesign board for ppc-440x5 {{git|2c50e26efdb7e405ecacf89e6a57a60179226dd8}}
* BookE MMU emulation improvements [http://git.qemu.org/qemu.git/commit/?id=a586e548fb41afa21291bcc96f0a657d5ceaad59 (commit)] [http://git.qemu.org/qemu.git/commit/?id=999fa40e431626121cdee7d244aadfd0c8f2597b (commit)]
* BookE MMU emulation improvements {{git|a586e548fb41afa21291bcc96f0a657d5ceaad59}} {{git|999fa40e431626121cdee7d244aadfd0c8f2597b}}


=== s390x ===
=== s390x ===
Line 33: Line 52:


=== SPARC ===
=== SPARC ===
*  Fix div(cc) and sdiv(cc) instruction emulation, fixes Xorg crash in the guest [http://git.qemu.org/qemu.git/commit/?id=0fcec41eec0432c77645b4a407d3a3e030c4abc4 (commit)]
*  Fix div(cc) and sdiv(cc) instruction emulation, fixes Xorg crash in the guest {{git|0fcec41eec0432c77645b4a407d3a3e030c4abc4}}


== Hosts ==
== Hosts ==


=== ARM ===
=== ARM ===
* Fix random crashes [http://git.qemu.org/qemu.git/commit/?id=c69806ab82760a2e5ca880d41e8786276c838152 (commit)]
* Fix random crashes {{git|c69806ab82760a2e5ca880d41e8786276c838152}}
* Fix 64-bit big-endian targets support [http://git.qemu.org/qemu.git/commit/?id=9a3abc21a61f95799c1f301b0b480a98a29fa0ff (commit)]
* Fix 64-bit big-endian targets support {{git|9a3abc21a61f95799c1f301b0b480a98a29fa0ff}}


=== MIPS ===
=== MIPS ===
* Fix random crashes [http://git.qemu.org/qemu.git/commit/?id=d43ffce14023df871d6065eb864d1f41eb441f37 (commit)]
* Fix random crashes {{git|d43ffce14023df871d6065eb864d1f41eb441f37}}


=== IA64 ===
=== IA64 ===
* Fix random crashes for 32-bit targets [http://git.qemu.org/qemu.git/commit/?id=650a217a652a940c164d5a38cedc4d6671da88ce (commit)]
* Fix random crashes for 32-bit targets {{git|650a217a652a940c164d5a38cedc4d6671da88ce}}


== Devices ==
== Devices ==
=== IDE / AHCI ===
=== IDE / AHCI ===
* Added emulation layer for an ICH-9 [http://www.intel.com/technology/serialata/ahci.htm AHCI] controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports [http://en.wikipedia.org/wiki/Native_Command_Queuing NCQ], so multiple read or write requests can be outstanding at the same time.[http://git.qemu.org/qemu.git/commit/?id=f6ad2e32f8d833c7f1c75dc084a84a8f02704d64 (commit)]
* Added emulation layer for an ICH-9 [http://www.intel.com/technology/serialata/ahci.htm AHCI] controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports [http://en.wikipedia.org/wiki/Native_Command_Queuing NCQ], so multiple read or write requests can be outstanding at the same time.{{git|f6ad2e32f8d833c7f1c75dc084a84a8f02704d64}}
** Final version series: http://www.mail-archive.com/qemu-devel@nongnu.org/msg49323.html
** to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0
** to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0


Line 57: Line 75:


=== USB ===
=== USB ===
* Added USB support for remote wakeup, allowing the guest to suspend the USB bus when idle, which in turn reduces the CPU overhead of an idle machine. [http://git.qemu.org/qemu.git/commit/?id=01eacab6e95267fd894d0c1013aa5bf55c320dc8 (commit)] [http://git.qemu.org/qemu.git/commit/?id=9159f6798ebfe0cdcfd1d1fb91c2c08b6d95954a (commit)] [http://git.qemu.org/qemu.git/commit/?id=34239c7bc972735391ca84283f8c8ad908dc61ef (commit)] [http://git.qemu.org/qemu.git/commit/?id=ac57bbb614ace4f7b8b965562826a7f7fda00cdc (commit)]
* Added USB support for remote wakeup, allowing the guest to suspend the USB bus when idle, which in turn reduces the CPU overhead of an idle machine. {{git|01eacab6e95267fd894d0c1013aa5bf55c320dc8}} {{git|9159f6798ebfe0cdcfd1d1fb91c2c08b6d95954a}} {{git|34239c7bc972735391ca84283f8c8ad908dc61ef}} {{git|ac57bbb614ace4f7b8b965562826a7f7fda00cdc}}
* The USB subsystem also got a bunch of patches to prepare it for USB 2.0 support.
* The USB subsystem also got a bunch of patches to prepare it for USB 2.0 support.


=== virtio ===
=== virtio ===
* virtio-pci can use [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d34e6b175e61821026893ec5298cc8e7558df43a ioeventfd] for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution.  This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. [http://git.qemu.org/qemu.git/commit/?id=25db9ebe15125deb32958c6df74996f745edf1f9 (commit)] [http://git.qemu.org/qemu.git/commit/?id=65d6dcbde84314c6d05a365a26a384f880a5c8fe (commit)]
* virtio-pci can use [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d34e6b175e61821026893ec5298cc8e7558df43a ioeventfd] for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution.  This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. {{git|25db9ebe15125deb32958c6df74996f745edf1f9}} {{git|65d6dcbde84314c6d05a365a26a384f880a5c8fe}}
* Various fixes and stabilization for live-migration: [http://git.qemu.org/qemu.git/commit/?id=783e7706937fe15523b609b545587a028a2bdd03 (commit)] [http://git.qemu.org/qemu.git/commit/?id=954773230484f5afeb675e9ff814c97e54e69e17 (commit)] [http://git.qemu.org/qemu.git/commit/?id=1abeb5a65d515f8a8a9cfc4a82342f731bd9321f (commit)]
* Various fixes and stabilization for live-migration: {{git|783e7706937fe15523b609b545587a028a2bdd03}} {{git|954773230484f5afeb675e9ff814c97e54e69e17}} {{git|1abeb5a65d515f8a8a9cfc4a82342f731bd9321f}}
* Various virtio-net improvements:
* Various virtio-net improvements:
** Make tx_timer timeout configurable [http://git.qemu.org/qemu.git/commit/?id=f0c07c7c7b4fe4f9b63c88341fd32707def5a058 (commit)]
** Make tx_timer timeout configurable {{git|f0c07c7c7b4fe4f9b63c88341fd32707def5a058}}
** Limit number of packets sent per TX flush [http://git.qemu.org/qemu.git/commit/?id=e3f30488e5f802547b3a60e40cebaef3b4ec16a3 (commit)]
** Limit number of packets sent per TX flush {{git|e3f30488e5f802547b3a60e40cebaef3b4ec16a3}}
** Introduce a new bottom half packet TX [http://git.qemu.org/qemu.git/commit/?id=a697a334b3c4d3250e6420f5d38550ea10eb5319 (commit)]
** Introduce a new bottom half packet TX {{git|a697a334b3c4d3250e6420f5d38550ea10eb5319}}
** Fix cross-endianness support [http://git.qemu.org/qemu.git/commit/?id=44b15bc5c65ab6b3103f508504e4adf8ee9902d7 (commit)]
** Fix cross-endianness support {{git|44b15bc5c65ab6b3103f508504e4adf8ee9902d7}}


=== PCI/PCI Express ===
=== PCI/PCI Express ===
* Improved PCI Express support and functionalities with the implementation of:
* Improved PCI Express support and functionalities with the implementation of:
**flr [http://www.pcisig.com/specifications/conventional/pci_30/ECN_Conventional_Adv_Caps_27Jul06.pdf (Function Level Reset)] [http://git.qemu.org/qemu.git/commit/?id=0ead87c8debaf12bf4e8cf5130e4e7fb83dbf126 (commit)]
**flr [http://www.pcisig.com/specifications/conventional/pci_30/ECN_Conventional_Adv_Caps_27Jul06.pdf (Function Level Reset)] {{git|0ead87c8debaf12bf4e8cf5130e4e7fb83dbf126}}
**aer [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/PCI/pcieaer-howto.txt;h=26d3d945c3c21aa965cd9b48c49cc42abf09df3f;hb=HEAD (Advanced Error Reporting)] and other improvements [http://git.qemu.org/qemu.git/commit/?id=1a1ea6f093eb8cf7c01788bc3708ba7003815563 (commit)] [http://git.qemu.org/qemu.git/commit/?id=34e65944c0351fabcd82aa8c85018980c7e87bff (commit)] [http://git.qemu.org/qemu.git/commit/?id=247c97f3f5ab0dae60778a2dea438bfed5c69e68 (commit)] [http://git.qemu.org/qemu.git/commit/?id=d33d9156fdffb87c99564c9630023da52c66f37a (commit)] [http://git.qemu.org/qemu.git/commit/?id=61620c2fff7dda789dbba513c18f534c0062062b (commit)] [http://git.qemu.org/qemu.git/commit/?id=a158f92fa78b1e87e5d196b72b750fedefb7b43e (commit)] [http://git.qemu.org/qemu.git/commit/?id=09b926d44674cbcf198425a5b8255e3cacb398ae (commit)] [http://git.qemu.org/qemu.git/commit/?id=c3f33667a64a6de0b92106c862247d97d81490ef (commit)] [http://git.qemu.org/qemu.git/commit/?id=2b3cb353e7af7a90eec22ba9720dcef2a80c7f6f (commit)] [http://git.qemu.org/qemu.git/commit/?id=5f47c187d992d5147397ddd5323c732d3d39cb8f (commit)] [http://git.qemu.org/qemu.git/commit/?id=513691b7ff20262efe9aafb85c8dd4615588ad48 (commit)]
**aer [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/PCI/pcieaer-howto.txt;h=26d3d945c3c21aa965cd9b48c49cc42abf09df3f;hb=HEAD (Advanced Error Reporting)] and other improvements {{git|1a1ea6f093eb8cf7c01788bc3708ba7003815563}} {{git|34e65944c0351fabcd82aa8c85018980c7e87bff}} {{git|247c97f3f5ab0dae60778a2dea438bfed5c69e68}} {{git|d33d9156fdffb87c99564c9630023da52c66f37a}} {{git|61620c2fff7dda789dbba513c18f534c0062062b}} {{git|a158f92fa78b1e87e5d196b72b750fedefb7b43e}} {{git|09b926d44674cbcf198425a5b8255e3cacb398ae}} {{git|c3f33667a64a6de0b92106c862247d97d81490ef}} {{git|2b3cb353e7af7a90eec22ba9720dcef2a80c7f6f}} {{git|5f47c187d992d5147397ddd5323c732d3d39cb8f}} {{git|513691b7ff20262efe9aafb85c8dd4615588ad48}}
**A new monitor command to inject errors into the PCI bus: '''pcie_aer_inject_error''' [http://git.qemu.org/qemu.git/commit/?id=2ae63bda50ec864a3e61d375b53c8e453ad50140 (commit)]
**A new monitor command to inject errors into the PCI bus: '''pcie_aer_inject_error''' {{git|2ae63bda50ec864a3e61d375b53c8e453ad50140}}
* Implementation of [http://en.wikipedia.org/wiki/Message_Signaled_Interrupts Message Signaled Interrupts] (MSI/MSI-X) support [http://git.qemu.org/qemu.git/commit/?id=e4c7d2aef899780f9b9b86343bca4ac34c9e252f (commit)]
* Implementation of [http://en.wikipedia.org/wiki/Message_Signaled_Interrupts Message Signaled Interrupts] (MSI/MSI-X) support {{git|e4c7d2aef899780f9b9b86343bca4ac34c9e252f}}
* Separation of the PCI bridge code from the main PCI code. [http://git.qemu.org/qemu.git/commit/?id=cfb0a50a06825a0bee349cae3fa94f96242e83a5 (commit)]
* Separation of the PCI bridge code from the main PCI code. {{git|cfb0a50a06825a0bee349cae3fa94f96242e83a5}}


=== Sound ===
=== Sound ===
* New Intel HD Audio support [http://git.qemu.org/qemu.git/commit/?id=d61a4ce8f01ac9f1810380e043db467d536eeb6b (commit)], adding three new devices:
* New Intel HD Audio support {{git|d61a4ce8f01ac9f1810380e043db467d536eeb6b}}, adding three new devices:
** intel-hda: Intel HD Audio Controller, the PCI device.  
** intel-hda: Intel HD Audio Controller, the PCI device.  
** hda-duplex: HDA Codec.  Attaches to the HDA bus.  Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y).
** hda-duplex: HDA Codec.  Attaches to the HDA bus.  Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y).
Line 90: Line 108:


=== Real Time Clock ===
=== Real Time Clock ===
* Fix binary/BCD mode switch [http://git.qemu.org/qemu.git/commit/?id=51e08f3e4b8a3b6d27fde9a9e75c8fa32eaa72d0 (commit)]
* Fix binary/BCD mode switch {{git|51e08f3e4b8a3b6d27fde9a9e75c8fa32eaa72d0}}


=== Video ===
=== Video ===
* Fix cirrus VGA crash with some guests [http://git.qemu.org/qemu.git/commit/?id=92d675d1c1f23f3617e24b63c825074a1d1da44b (commit)]
* Fix cirrus VGA crash with some guests {{git|92d675d1c1f23f3617e24b63c825074a1d1da44b}}
* Fix curses big endian support [http://git.qemu.org/qemu.git/commit/?id=9ae19b657ee20f4d03bdca8dbf367b932801ac93 (commit)]
* Fix curses big endian support {{git|9ae19b657ee20f4d03bdca8dbf367b932801ac93}}


== Block Drivers ==
== Block Drivers ==
=== qcow2 ===
=== qcow2 ===
* Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. [http://git.qemu.org/qemu.git/commit/?id=493810940bfaad0fd5dd9bfb79cdc89519f89588 (commit)] [http://git.qemu.org/qemu.git/commit/?id=29c1a7301af752de6721e031d31faa48887204bd (commit)] [http://git.qemu.org/qemu.git/commit/?id=3de0a2944bdb3047dce275560631834bcb4afe22 (commit)]
* Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. {{git|493810940bfaad0fd5dd9bfb79cdc89519f89588}} {{git|29c1a7301af752de6721e031d31faa48887204bd}} {{git|3de0a2944bdb3047dce275560631834bcb4afe22}}
* Copy snapshots out of QCOW2 disk, eg: '''qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img''' [http://git.qemu.org/qemu.git/commit/?id=51ef67270b1d10e1fcf3de7368dccad1ba0bf9d1 (commit)]
* Copy snapshots out of QCOW2 disk, eg: '''qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img''' {{git|51ef67270b1d10e1fcf3de7368dccad1ba0bf9d1}}
* Zero-copy read and write operations [http://git.qemu.org/qemu.git/commit/?id=6f5f060b736cedc2d962114d20805fdd2889513a (commit)] [http://git.qemu.org/qemu.git/commit/?id=bd28f835652e396841bb73080a07bcc08fe21bf0 (commit)]
* Zero-copy read and write operations {{git|6f5f060b736cedc2d962114d20805fdd2889513a}} {{git|bd28f835652e396841bb73080a07bcc08fe21bf0}}


* Other fixes and code cleanups:
* Other fixes and code cleanups:
** qcow2: Invalidate cache after failed read [http://git.qemu.org/qemu.git/commit/?id=1c02e2a17104fe7fc11893125864dc0daf1e6d5b (commit)]
** qcow2: Invalidate cache after failed read {{git|1c02e2a17104fe7fc11893125864dc0daf1e6d5b}}
** block: Allow bdrv_flush to return errors [http://git.qemu.org/qemu.git/commit/?id=205ef7961f781496366e0a93a4ec621ad3724bd7 (commit)]
** block: Allow bdrv_flush to return errors {{git|205ef7961f781496366e0a93a4ec621ad3724bd7}}
** qcow2: Simplify image creation [http://git.qemu.org/qemu.git/commit/?id=a9420734b617be43d075c55b980479411807512e (commit)]
** qcow2: Simplify image creation {{git|a9420734b617be43d075c55b980479411807512e}}
** qcow2: Fixes unaligned access on IA64 [http://git.qemu.org/qemu.git/commit/?id=653df36bbe58e20258610bc74c5940c456b31084 (commit)]
** qcow2: Fixes unaligned access on IA64 {{git|653df36bbe58e20258610bc74c5940c456b31084}}


=== qed ===
=== qed ===
* Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity.  Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. [http://git.qemu.org/qemu.git/commit/?id=75411d236d93d79d8052e0116c3eeebe23e2778b (commit)] [http://git.qemu.org/qemu.git/commit/?id=298800cae72eb2a549374189e87615b2b0b79262 (commit)] [http://git.qemu.org/qemu.git/commit/?id=eabba580e6bb8d6b969c1368c6f90d72b4cde4f4 (commit)]
* Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity.  Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. {{git|75411d236d93d79d8052e0116c3eeebe23e2778b}} {{git|298800cae72eb2a549374189e87615b2b0b79262}} {{git|eabba580e6bb8d6b969c1368c6f90d72b4cde4f4}}
* More information about qed: http://wiki.qemu.org/Features/QED
* More information about qed: http://wiki.qemu.org/Features/QED
* Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html
* Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html


=== ceph/rbd ===
=== ceph/rbd ===
* Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph.[http://git.qemu.org/qemu.git/commit/?id=f27aaf4b531bc0eb4f3e1f7accf4931cae36db0d (commit)]
* Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph.{{git|f27aaf4b531bc0eb4f3e1f7accf4931cae36db0d}}
* More information about ceph: http://ceph.newdream.net/
* More information about ceph: http://ceph.newdream.net/


=== nbd ===
=== nbd ===
* Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. [http://git.qemu.org/qemu.git/commit/?id=5fe16888d33af7aca0d613d888c161af68c755c3 (commit)]
* Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. {{git|5fe16888d33af7aca0d613d888c161af68c755c3}}
* Introduce NBD named exports. [http://git.qemu.org/qemu.git/commit/?id=1d45f8b542f6b80b24c44533ef0dd9e1a3b17ea5 (commit)]
* Introduce NBD named exports. {{git|1d45f8b542f6b80b24c44533ef0dd9e1a3b17ea5}}


== Spice ==
== Spice ==
Line 125: Line 143:
* New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server).  The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory.  Local rendering is also used to support display over vnc and sdl. qxl is activated using '''-vga qxl'''.  qxl supports multihead, additional cards can be added via ''''-device qxl'''.
* New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server).  The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory.  Local rendering is also used to support display over vnc and sdl. qxl is activated using '''-vga qxl'''.  qxl supports multihead, additional cards can be added via ''''-device qxl'''.
* Relevant commits:
* Relevant commits:
**spice: core bits [http://git.qemu.org/qemu.git/commit/?id=29b0040be6371c403dae0fef7fec36b814e300e8 (commit)]
**spice: core bits {{git|29b0040be6371c403dae0fef7fec36b814e300e8}}
**spice: add keyboard [http://git.qemu.org/qemu.git/commit/?id=864401c2a709bcb66182c02372fb60a30055a4d7 (commit)]
**spice: add keyboard {{git|864401c2a709bcb66182c02372fb60a30055a4d7}}
**spice: add mouse [http://git.qemu.org/qemu.git/commit/?id=78dd9ac1ca5130ae144a6abe8361a59483a5464b (commit)]
**spice: add mouse {{git|78dd9ac1ca5130ae144a6abe8361a59483a5464b}}
**spice: simple display [http://git.qemu.org/qemu.git/commit/?id=a3e2226031496f479b5fe4a069ec1acd68a17e8d (commit)]
**spice: simple display {{git|a3e2226031496f479b5fe4a069ec1acd68a17e8d}}
**spice: add tablet support [http://git.qemu.org/qemu.git/commit/?id=869564a9c0f78b1972e1ac51e69cb2016af3b060 (commit)]
**spice: add tablet support {{git|869564a9c0f78b1972e1ac51e69cb2016af3b060}}
**spice: tls support [http://git.qemu.org/qemu.git/commit/?id=c448e8552b0f6135dabddf944a7110f929c08320 (commit)]
**spice: tls support {{git|c448e8552b0f6135dabddf944a7110f929c08320}}
**spice: make compression configurable. [http://git.qemu.org/qemu.git/commit/?id=9f04e09e36e430dd57c69c88b0532e9dc5061a47 (commit)]
**spice: make compression configurable. {{git|9f04e09e36e430dd57c69c88b0532e9dc5061a47}}
**spice: add config options for channel security. [http://git.qemu.org/qemu.git/commit/?id=17b6dea08bd8c8484bc48dc67add236d2fe002b5 (commit)]
**spice: add config options for channel security. {{git|17b6dea08bd8c8484bc48dc67add236d2fe002b5}}
**spice: add config options for the listening address [http://git.qemu.org/qemu.git/commit/?id=333b0eebcc8941b8453e837293eaa1191e967c25 (commit)]
**spice: add config options for the listening address {{git|333b0eebcc8941b8453e837293eaa1191e967c25}}
**spice: add misc config options [http://git.qemu.org/qemu.git/commit/?id=84a23f251fe85768338434040257bb96cf555de8 (commit)]
**spice: add misc config options {{git|84a23f251fe85768338434040257bb96cf555de8}}
**spice: add audio [http://git.qemu.org/qemu.git/commit/?id=3e31375378f40558f1ee7c258f3cc63c85596bfc (commit)]
**spice: add audio {{git|3e31375378f40558f1ee7c258f3cc63c85596bfc}}
**spice: add qxl device [http://git.qemu.org/qemu.git/commit/?id=a19cbfb346425cc760ed19b4e746417df636b761 (commit)]
**spice: add qxl device {{git|a19cbfb346425cc760ed19b4e746417df636b761}}
**spice: connection events. [http://git.qemu.org/qemu.git/commit/?id=6f8c63fbd7edc0b41c09f8f8e2d41a3a65464a43 (commit)]
**spice: connection events. {{git|6f8c63fbd7edc0b41c09f8f8e2d41a3a65464a43}}


== QMP / monitor ==
== QMP / monitor ==
* TODO: QMP is now stable, except for error reporting?
* TODO: QMP is now stable, except for error reporting?
* The work to facilitate the management of QEMU instances has been improved. [[QMP]] has received various fixes. Now it is possible to call a traditional monitor command through QMP, in case your application depends on the output or the command is not yet ported to QMP.  
* The work to facilitate the management of QEMU instances has been improved. QMP has received various fixes. Now it is possible to call a traditional monitor command through QMP, in case your application depends on the output or the command is not yet ported to QMP.  
* New commands:
* New commands:
** query-spice / info spice [http://git.qemu.org/qemu.git/commit/?id=cb42a870c3f5b38911b1428cb785dd702bc47d0f (commit)]
** query-spice / info spice {{git|cb42a870c3f5b38911b1428cb785dd702bc47d0f}}
** human-monitor-command [http://git.qemu.org/qemu.git/commit/?id=0268d97c51207f35a5a01239ad92ef2c35dcd5ba (commit)] [http://git.qemu.org/qemu.git/commit/?id=0268d97c51207f35a5a01239ad92ef2c35dcd5ba (commit)]
** human-monitor-command {{git|0268d97c51207f35a5a01239ad92ef2c35dcd5ba}} {{git|0268d97c51207f35a5a01239ad92ef2c35dcd5ba}}
** set_password [http://git.qemu.org/qemu.git/commit/?id=7572150c189c6553c2448334116ab717680de66d (commit)]
** set_password {{git|7572150c189c6553c2448334116ab717680de66d}}
** drive_del [http://git.qemu.org/qemu.git/commit/?id=9063f81415f3518ef8206e74085c2a92c96890a0 (commit)]
** drive_del {{git|9063f81415f3518ef8206e74085c2a92c96890a0}}
** block_resize command, allowing resizing of block devices while qemu is running [http://git.qemu.org/qemu.git/commit/?id=6d4a2b3a47959f02e7f307f50396e70e8464f95e (commit)]. For virtio-blk the size is updated automatically when this command is issued on the host. IDE is not supported. For SCSI devices the new size can be updated in Linux guests by doing the following shell command:
** block_resize command, allowing resizing of block devices while qemu is running {{git|6d4a2b3a47959f02e7f307f50396e70e8464f95e}}. For virtio-blk the size is updated automatically when this command is issued on the host. IDE is not supported. For SCSI devices the new size can be updated in Linux guests by doing the following shell command:
  echo > /sys/class/scsi_device/0:0:0:0/device/rescan
  echo > /sys/class/scsi_device/0:0:0:0/device/rescan


Line 154: Line 172:
* Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt
* Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt
* Some relevant commits:
* Some relevant commits:
** Add trace-events file for declaring trace events [http://git.qemu.org/qemu.git/commit/?id=94a420b170b3e997a185a4148accc87bdcd18156 (commit)]
** Add trace-events file for declaring trace events {{git|94a420b170b3e997a185a4148accc87bdcd18156}}
** Add a DTrace tracing backend targetted for SystemTAP compatibility [http://git.qemu.org/qemu.git/commit/?id=b3d08c029dd78ded5e35b74eaaa3d361821f83a7 (commit)]
** Add a DTrace tracing backend targetted for SystemTAP compatibility {{git|b3d08c029dd78ded5e35b74eaaa3d361821f83a7}}
** Add LTTng Userspace Tracer backend [http://git.qemu.org/qemu.git/commit/?id=7e24e92a0615ee6be036743f2a035554d2ceac56 (commit)]
** Add LTTng Userspace Tracer backend {{git|7e24e92a0615ee6be036743f2a035554d2ceac56}}
** Add simple built-in tracing backend [http://git.qemu.org/qemu.git/commit/?id=26f7227bfe9a9abee3fe5190cbfc35dd876e06d9 (commit)]
** Add simple built-in tracing backend {{git|26f7227bfe9a9abee3fe5190cbfc35dd876e06d9}}
** Add stderr trace-event backend: [http://git.qemu.org/qemu.git/commit/?id=320fba2a1f384e17db150d74540a2cf005eb47b5 (commit)]
** Add stderr trace-event backend: {{git|320fba2a1f384e17db150d74540a2cf005eb47b5}}
** Support for dynamically enabling/disabling trace events [http://git.qemu.org/qemu.git/commit/?id=22890ab5e825601f4c3d5a1a6b4197904e5d1fee (commit)]
** Support for dynamically enabling/disabling trace events {{git|22890ab5e825601f4c3d5a1a6b4197904e5d1fee}}
** Specify trace file name [http://git.qemu.org/qemu.git/commit/?id=9410b56c82a107ed48c1f40aa6820c03094d97e9 (commit)]
** Specify trace file name {{git|9410b56c82a107ed48c1f40aa6820c03094d97e9}}
** Add trace-file command to open/close/flush trace file [http://git.qemu.org/qemu.git/commit/?id=c5ceb523fa6fc168d3f51e306fee3def458e047e (commit)]
** Add trace-file command to open/close/flush trace file {{git|c5ceb523fa6fc168d3f51e306fee3def458e047e}}


== Other stuff ==
== Other stuff ==
* Extend '''-option-rom''' command to have additional parameter '''bootindex''' [http://git.qemu.org/qemu.git/commit/?id=2e55e84282c545aeab8f5c9dd52a8073deaf3dbc (commit)]
* Extend '''-option-rom''' command to have additional parameter '''bootindex''' {{git|2e55e84282c545aeab8f5c9dd52a8073deaf3dbc}}
* Little endian / big endian MMIO framework. Until now, most devices had special hacks to allow them to work on big and little endian systems (ppc / x86). With that framework, they should mostly work with both and not require and device specific hacks anymore. [http://git.qemu.org/qemu.git/commit/?id=dd310534e3bf8045096654df41471fd7132887b2 (commit)]
* Little endian / big endian MMIO framework. Until now, most devices had special hacks to allow them to work on big and little endian systems (ppc / x86). With that framework, they should mostly work with both and not require and device specific hacks anymore. {{git|dd310534e3bf8045096654df41471fd7132887b2}}

Latest revision as of 08:34, 12 October 2016

0.14.1

0.14.0

Targets

ARM

  • Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. (list of commits)

MIPS

SH4

PPC

s390x

  • No news, business as usual.

SPARC

Hosts

ARM

MIPS

IA64

Devices

IDE / AHCI

  • Added emulation layer for an ICH-9 AHCI controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports NCQ, so multiple read or write requests can be outstanding at the same time.(commit f6ad2e32f8d833c7f1c75dc084a84a8f02704d64)
    • to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0

SCSI

  • Various bug fixes, no new features.

USB

virtio

PCI/PCI Express

Sound

  • New Intel HD Audio support (commit d61a4ce8f01ac9f1810380e043db467d536eeb6b), adding three new devices:
    • intel-hda: Intel HD Audio Controller, the PCI device.
    • hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y).
    • hda-output: HDA Codec without recording support. Subset of the hda-duplex codec. Use this if you don't want your guests access your mic.
  • Usage: add '-device intel-hda -device hda-duplex' to your command line.
  • Tested guests:
    • Linux works.
    • Win7 works.
    • DOS (mpxplay) works.
    • WinXP doesn't work.

Real Time Clock

Video

Block Drivers

qcow2

qed

ceph/rbd

nbd

Spice

QMP / monitor

echo > /sys/class/scsi_device/0:0:0:0/device/rescan

Tracing

Other stuff