https://wiki.qemu.org/api.php?action=feedcontributions&user=Lersek&feedformat=atomQEMU - User contributions [en]2024-03-29T10:04:57ZUser contributionsMediaWiki 1.39.1https://wiki.qemu.org/index.php?title=ChangeLog/5.2&diff=9730ChangeLog/5.22020-09-14T15:07:50Z<p>Lersek: /* Miscellaneous */ list edk2-stable202008</p>
<hr />
<div><br />
IMPORTANT NOTE: in this release we have switched our build system to internally use Meson. Building should be broadly unchanged for most users, but please see the 'Build Information' section of the changelog for details.<br />
<br />
== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
=== New deprecated options and features ===<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* ARMv8.2 FEAT_FP16 (half-precision floating point) is now implemented for AArch32 emulation (AArch64 already supported this)<br />
* The SMMUv3 model now supports SMMUv3.2 range invalidation<br />
* The sbsa-ref board now has an embedded controller model for guest powerdown and reboot requests<br />
<br />
=== AVR ===<br />
<br />
=== HPPA ===<br />
* Added power button emulation<br />
* Boots NetBSD<br />
* Boots old Linux CDs, e.g debian-0.5 and debian-0.6.1<br />
* Artist framebuffer fixes when running dtwm on HP-UX<br />
* Artist graphics allows screen resolution up to 2048 x 2048 pixels<br />
* fw_cfg interface added<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
* The pseries machine now respects the nvdimm= machine option (previously NVDIMMs could be attached even with nvdimm=off)<br />
* spapr_vscsi should now properly report that it does not support hotplug<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
<br />
* Improvements to the Ibex (OpenTitan) PLIC<br />
* OpenSBI v0.8 included<br />
* Generic OpenSBI platform used when no -bios argument is supplied<br />
* A dummy L2 cache controller for the sifive_u is now included<br />
* PMPCFG CSR setting bug fixed for RV64<br />
* Improvements to the floating point helpers<br />
* Experimental Hypervisor support updated to v0.6.1<br />
* Support for NUMA sockets on Virt and Spike Machines<br />
<br />
=== s390 ===<br />
<br />
=== SPARC ===<br />
<br />
=== TileGX ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
<br />
* DFPU coprocessor with single and double precision floating point opcodes is now supported<br />
* NMI is now supported<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
* Add support for mandatory features of version 1.3 of the NVM Express specification<br />
* Add support for the Abort, Asynchronous Event Request and Get Log Page commands<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* Significant performance improvement of Treaddir requests.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
==== experimental qmp interface ====<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
* A new 'block-bitmap-mapping' migration parameter is added, allowing finer control of which bitmaps to migrate, even when node names differ between source and destination.<br />
<br />
=== Monitor ===<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
* qcow2 files now support extended L2 entries that allow subcluster-based allocation (enable with <code>extended_l2=on</code> when creating the image).<br />
* Using qemu as an NBD client has fewer scenarios where network timeouts stall guest execution<br />
<br />
=== Tracing ===<br />
<br />
* Add support of dtrace backend on macOS<br />
<br />
=== Miscellaneous ===<br />
<br />
* The roms/edk2 submodule and the bundled edk2 binaries have been updated to [https://bugs.launchpad.net/qemu/+bug/1852196 edk2-stable202008].<br />
<br />
== User-mode emulation ==<br />
<br />
== TCG ==<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
* The build system is now partly based on Meson. However, building is still done with ''configure'' and ''make'' as in previous versions of QEMU.<br />
* Binaries for emulators are placed in the root build directory, for example as ''qemu-system-ppc'' instead of ''ppc-softmmu/qemu-system-ppc''. Symbolic links from the old binary are preserved to simplify the transition.<br />
* In-tree builds are not supported anymore. The build system will try to cater for ''./configure && make && make install'' by building QEMU in a directory named ''build'', but you are encouraged to switch to out-of-tree builds instead.<br />
* ivshmem-client and ivshmem-server are not installed anymore. They are merely examples, and not to be used in production.<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
* GNU Make 3.82 is now the minimum supported release for building QEMU. Note that this version is not included in macOS and must be installed from packaging systems such as Homebrew.<br />
* Python setuptools are now required to build QEMU.<br />
<br />
=== Testing ===<br />
<br />
=== Windows ===<br />
* qemu-nbd is now built on mingw, and works for simple cases even if it can't duplicate the full functionality available on Unix systems<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/5.2]]</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/4.1&diff=8665ChangeLog/4.12019-06-19T23:39:32Z<p>Lersek: /* Miscellaneous */</p>
<hr />
<div><br />
== System emulation ==<br />
=== Incompatible changes ===<br />
<br />
*<br />
<br />
=== New deprecated options and features ===<br />
<br />
* The "-virtfs_synth" option is now deprecated. Please use "-fsdev synth" and "-device virtio-9p-..." instead.<br />
<br />
Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features "Deprecated Features"] appendix for the full list of historically deprecated features/options.<br />
<br />
=== Alpha ===<br />
<br />
=== 68k ===<br />
<br />
=== Arm ===<br />
<br />
* QEMU now supports emulating an FPU for Cortex-M CPUs, and the Cortex-M4 and Cortex-M33 now provide the FPU.<br />
* The Cortex-R5F now correctly provides an FPU with registers D0-D15 only, rather than incorrectly providing also D16-D31.<br />
* The build config files have been switched to the new Kconfig system, so that a QEMU with individual boards can be built more easily.<br />
* The ARMv8.5-RNG extension is supported, for cpu generated random numbers.<br />
* The Exynos4210 SoC model now supports the PL330 DMA controllers.<br />
* Some bugs in handling of GICv3 ICC_CTLR_EL3 and ICH_VMCR_EL2 register writes have been fixed.<br />
* The built-in bootloader now handles loading AArch64 kernel Image files which are larger than 128MB.<br />
* The GICv3 now correctly reports GICD_TYPER.SecurityExtn as 0 if GICD_CTLR.DS is 1.<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
* Marking referenced memory pages as executable is improved (it is restricted to necessary cases only).<br />
* Emulation of MSA ASE instructions on big endian hosts is fixed for instructions LD.<B|H|W|D>, ST.<B|H|W|D>, COPY_S.<B|H|W|D>, COPY_U.<B|H|W>, and INSERT.<B|H|W|D>.<br />
* The 'division by zero' cases in MSA ASE instructions DIV_<U|S>.<B|H|W|D> and MOD_<U|S>.<B|H|W|D> are now handled in QEMU and on the reference hardware the same way.<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* NVIDIA V100 GPU/NVLink2 passthrough for spapr using VFIO PCI<br />
* The TCG implementation of the Power9 DARN instruction now produces random numbers, instead of indicating failure.<br />
* pseries machine now supports KVM acceleration (kernel_irqchip=on) of the XIVE interrupt controller<br />
* pseries now defaults to XIVE interrupt controller if using pseries-4.1 machine version, POWER9 cpu and a guest OS which supports it<br />
<br />
<br />
=== RISC-V ===<br />
<br />
* Arbitrary bits in SIP can no longer be set.<br />
* A new "spike" machine has been defined, with the old machines being deprecated.<br />
* sfence.vma can no longer execute from userspace.<br />
* Single-stepping over branches and jumps now works.<br />
* A handful of illegal instructions (all compressed) are now handled correctly, as opposed to being treated as NOPs.<br />
<br />
=== s390 ===<br />
* The bios now supports IPL (boot) from ECKD DASD assigned to the guest via vfio-ccw.<br />
* The bios now tolerates the presence of bootmap signature entries written by zipl.<br />
* All Vector Instructions introduced with the "Vector Facility" have been implemented for TCG.<br />
** The "Vector Facility" is now indicated in the "qemu" cpu model, which has been updated to a stripped-down z13.<br />
* More facilities and gen15 machines (official name not yet known) have been added to the cpu model.<br />
<br />
=== SH ===<br />
<br />
=== SPARC ===<br />
<br />
=== TileGX ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
* New Hygon Dhyana CPU model<br />
* The <code>host-cache-info</code> CPU option now affects the TOPOEXT CPUID leaf (0x8000001D)<br />
* The RDRAND extension is implemented for TCG.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== GPIO ====<br />
<br />
* SiFive's GPIO controller is now supported.<br />
<br />
==== Graphics ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== Semihosting ====<br />
<br />
* semihosting output can now be redirected to a chardev backend with -semihosting-config enable=on,target=native,chardev=[ID]<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== GUI ===<br />
<br />
* virtio-gpu 2d/3d rendering may now be offloaded to an external vhost-user process, such as QEMU vhost-user-gpu. Use vhost-user-vga & vhost-user-gpu-pci for associated devices. See [https://patchew.org/QEMU/20190524130946.31736-1-marcandre.lureau@redhat.com/ patch series].<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
* QEMU will automatically try to use the <code>MAP_SYNC</code> <code>mmap</code> flag for memory backends configured with <code>pmem=on,share=on</code><br />
<br />
=== Monitor ===<br />
* <code>query-qmp-schema</code> now supports feature flags. Intended use is signalling some change that would otherwise be invisible in introspection. For details, see docs/devel/qapi-code-gen.txt.<br />
<br />
=== Migration ===<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* Added a <code>--salvage</code> option to <code>qemu-img convert</code>, which prevents the conversion process from aborting on I/O errors. This can be used for example to salvage partially corrupted qcow2 files.<br />
* <code>qemu-img rebase</code> works now even when the input file doesn't have a backing file yet<br />
* The backup block job now accepts any source node<br />
* <code>qemu-nbd</code> now supports a --pid-file option, writing its pid into that file after other initialization is complete<br />
* QAPI schema introspection exposes the feature <code>dynamic-auto-read-only</code> for the type <code>BlockdevOptionsFile</code> to signal that for the <code>file</code> driver, <code>auto-read-only=on</code> is not only a static fallback to read-only when opening the file, but dynamically reopens the file read-only or read-write as needed (the behaviour changed already in 4.0, this adds introspection for it).<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
* Unless QEMU is configured with <code>--disable-blobs</code>, <code>make install</code> will install UEFI platform firmware binaries, and matching variable store templates, at <code>$prefix/share/qemu/edk2-*.fd</code>.<br />
** These files are built from the edk2 project's ArmVirtPkg and OvmfPkg firmware platforms, and the edk2 project's OpenSSL and Berkeley SoftFloat submodules.<br />
** They are documented (and exposed to virt management applications) through JSON files in <code>$prefix/share/qemu/firmware/</code>.<br />
** The schema definition for the JSON descriptors is located at <code>docs/interop/firmware.json</code> in the QEMU source tree.<br />
<br />
== User-mode emulation ==<br />
<br />
=== Alpha ===<br />
<br />
* Fix for linux-user emulation of fp exceptions ([https://bugs.launchpad.net/qemu/+bug/1701835 launchpad bug 1701835])<br />
<br />
== TCG ==<br />
<br />
* aarch64 and alpha softmmu test harnesses have been added<br />
* gdbstub now supports custom gdb maint packet support for physical address mode<br />
<br />
== Guest agent ==<br />
<br />
<br />
== Build Information ==<br />
<br />
The configure argument <code>--source-path</code> has been removed. This argument used to be provided to allow the user to specify that the source tree was in a different location from the configure script itself. This odd way of building is no longer supported, and we always assume that the source tree is where the configure script is. (Note that a separate build tree is still permitted -- the build tree is the working directory in which configure is run.)<br />
<br />
=== Python ===<br />
<br />
* Build and test scripts will now use the <code>python3</code> binary by default if available<br />
<br />
=== GIT submodules ===<br />
<br />
=== Build Dependencies ===<br />
<br />
== Known issues ==<br />
* see [[Planning/4.1]]</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/4.1&diff=8555ChangeLog/4.12019-04-24T19:03:20Z<p>Lersek: /* Miscellaneous */ describe edk2 platform firmware blobs</p>
<hr />
<div><br />
== System emulation ==<br />
=== Incompatible changes ===<br />
<br />
*<br />
<br />
=== New deprecated options and features ===<br />
<br />
*<br />
<br />
Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features "Deprecated Features"] appendix for the full list of historically deprecated features/options.<br />
<br />
=== Alpha ===<br />
<br />
=== 68k ===<br />
<br />
=== Arm ===<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== RISC-V ===<br />
<br />
=== s390 ===<br />
<br />
=== SH ===<br />
<br />
=== SPARC ===<br />
<br />
=== TileGX ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Monitor ===<br />
<br />
=== Migration ===<br />
<br />
=== Network ===<br />
<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
* Unless QEMU is configured with <code>--disable-blobs</code>, <code>make install</code> will install UEFI platform firmware binaries, and matching variable store templates, at <code>$prefix/share/qemu/edk2-*.fd</code>.<br />
** These files are built from the edk2 project's ArmVirtPkg and OvmfPkg firmware platforms, and the edk2 project's OpenSSL submodule.<br />
** They are documented (and exposed to virt management applications) through JSON files in <code>$prefix/share/qemu/firmware/</code>.<br />
** The schema definition for the JSON descriptors is located at <code>docs/interop/firmware.json</code> in the QEMU source tree.<br />
<br />
== User-mode emulation ==<br />
<br />
== TCG ==<br />
<br />
== Guest agent ==<br />
<br />
<br />
== Build Information ==<br />
<br />
=== GIT submodules ===<br />
<br />
=== Build Dependencies ===<br />
<br />
== Known issues ==<br />
* see [[Planning/4.1]]</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/4.0&diff=8506Planning/4.02019-04-04T11:35:10Z<p>Lersek: 938912a86611 ("virtio-vga: only enable for specific boards", 2019-03-21) is part of v4.0.0-rc2</p>
<hr />
<div>== Release Schedule ==<br />
<br />
Tentatively proposed dates, still to be discussed/agreed.<br />
<br />
{| border="1"<br />
| 2018-12-12<br />
| Beginning of development phase<br />
|-<br />
| 2019-03-12<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2019-03-19<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2019-03-26<br />
| Tag rc1<br />
|-<br />
| 2019-04-02<br />
| Tag rc2<br />
|-<br />
| 2019-04-09<br />
| Tag rc3<br />
|-<br />
| 2019-04-16<br />
| Release, or tag rc4 if extra RC cycle needed<br />
|-<br />
| 2019-04-23<br />
| Release, if we needed an rc4.<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
=== Fixed in rc0 ===<br />
<br />
=== Fixed in rc1 ===<br />
<br />
=== Fixed in rc2 ===<br />
* spapr linux guests crash under TCG https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg06447.html<br />
* TCG crash when running a ppc64le guest https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg07374.html<br />
* aarch64-softmmu/virt unintentionally gained the "virtio-vga" device (via the Kconfig conversion), which misleads libvirt https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg06060.html -- fixed in commit 938912a86611<br />
<br />
=== Not yet fixed in any rc ===<br />
* Pending migration PR https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg04457.html<br />
* filemon inotify watch uniqneness https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg04885.html<br />
* linux-user compile is broken with latest glibc master, due to gettid clash<br />
* Travis timeout fixes https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05775.html<br />
* MIPS FPU NaN propergation https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05808.html<br />
* migration of intel_iommu due to root_scalable field<br />
* migration to 3.1 gives : Unknown savevm section or instance 'audio' 0.<br />
* PCIe extended config space not accessible on spapr https://lists.gnu.org/archive/html/qemu-devel/2019-04/msg00204.html<br />
* COLO bitmap_mutex error https://lists.nongnu.org/archive/html/qemu-devel/2019-03/msg07909.html<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/4.0]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/4.0&diff=8448Planning/4.02019-03-21T11:40:32Z<p>Lersek: /* Not yet fixed in any rc */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
Tentatively proposed dates, still to be discussed/agreed.<br />
<br />
{| border="1"<br />
| 2018-12-12<br />
| Beginning of development phase<br />
|-<br />
| 2019-03-12<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2019-03-19<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2019-03-26<br />
| Tag rc1<br />
|-<br />
| 2019-04-02<br />
| Tag rc2<br />
|-<br />
| 2019-04-09<br />
| Tag rc3<br />
|-<br />
| 2019-04-16<br />
| Release, or tag rc4 if extra RC cycle needed<br />
|-<br />
| 2019-04-23<br />
| Release, if we needed an rc4.<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
=== Fixed in rc0 ===<br />
<br />
=== Not yet fixed in any rc ===<br />
* Pending migration PR https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg04457.html<br />
* websock EOF handling https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg02140.html<br />
* filemon inotify watch uniqneness https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg04885.html<br />
* linux-user compile is broken with latest glibc master, due to gettid clash<br />
* Travis timeout fixes https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05775.html<br />
* MIPS FPU NaN propergation https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05808.html<br />
* aarch64-softmmu/virt unintentionally gained the "virtio-vga" device (via the Kconfig conversion), which misleads libvirt https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg06060.html<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/4.0]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/2.12&diff=7577Planning/2.122018-04-24T13:54:30Z<p>Lersek: /* Issues that will not be fixed */ arch issues with query-cpus-fast</p>
<hr />
<div>== Release Schedule ==<br />
<br />
<br />
{| border="1"<br />
| 2017-12-13<br />
| Beginning of development phase<br />
|-<br />
| 2018-03-13<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2018-03-20<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2018-03-27<br />
| Tag rc1<br />
|-<br />
| <strike>2018-04-03</strike> 2018-04-04<br />
| Tag rc2<br />
|-<br />
| <strike>2018-04-10</strike> 2018-04-11<br />
| Tag rc3<br />
|-<br />
| 2018-04-17<br />
| Release, or tag rc4 if extra RC cycle needed<br />
|-<br />
| 2018-04-24<br />
| Release, if we needed an rc4.<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
=== Fixed in rc0 ===<br />
<br />
=== Fixed in rc1 ===<br />
<br />
* macio IDE TRIM fixes: [https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg06076.html] and [https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg00763.html].<br />
<br />
=== Fixed in rc3 ===<br />
<br />
* Crash with: <code>ppc64-softmmu/qemu-system-ppc64 -S -machine 40p -device i82374</code> (patch is available here: https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg06678.html )<br />
* GTK WARNING and CRITICAL errors when closing QEMU window directly instead of using the "Quit" menu option (patch available at https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg04315.html)<br />
<br />
=== Fixed in rc4 ===<br />
<br />
* softfloat: failed to raise Invalid for float-to-int conversions of NaN and infinity<br />
* softfloat: minnummag and maxnummag mishandled +Zero, -Zero<br />
* linux-user aarch64 signal frame not quite right<br />
* compile failure on MIPS hosts building aarch64 targets<br />
* m68k: fix exception stack frame for 68000<br />
* fix for handling dirty bitmaps in qcow2 files<br />
* gtk message catalogs not installed if CONFIG_GTK=y<br />
* softfloat: division of inf by 0 should not raise DivByZero<br />
* linux-user aarch64 signal frame not fully checked for writability<br />
* i386 FEAT_KVM_HINTS bits should not be automatically enabled<br />
* softfloat scalbn increment not bounded<br />
<br />
=== Not yet fixed in any rc ===<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
* update po files (needed because of recent changes in ui/gtk.c)<br />
* mux Ctrl-a b doesn't send break<br />
* the <code>query-cpus-fast</code> QMP command reports bogus <code>arch</code> data for all architectures except <code>x86</code> and <code>s390</code>; applications should be careful to not rely on the bogus information<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/2.12]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6623ChangeLog/2.92017-02-20T16:25:01Z<p>Lersek: /* ACPI */ document WRITE_POINTER in the linker/loader</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
<br />
==== SMI broadcast ====<br />
<br />
The <tt>pc-q35-2.9</tt> machine type now offers SMI feature negotiation to interested guest firmware. The negotiation interface resembles virtio-1.0, with the <tt>etc/smi/supported-features</tt>, <tt>etc/smi/requested-features</tt>, and <tt>etc/smi/features-ok</tt> fw_cfg files. Currently one bit can be negotiated by guest firmware, <tt>ICH9_LPC_SMI_F_BROADCAST_BIT</tt>, which causes QEMU to inject a syncronous SMI (triggered through <tt>APM_CNT_IOPORT</tt>) on all VCPUs at once. This benefits the edk2 SMM driver stack as built into OVMF.<br />
<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
<br />
The QEMU linker/loader command set has been extended with <tt>WRITE_POINTER</tt>. It enables guest firmware to communicate GPAs to QEMU that fall in memory areas that were allocated by the guest firmware. Such information lets QEMU device models write to guest RAM at the right locations, when the guest OS is supposed to find the same locations via ACPI objects. (For linking those ACPI objects, the existent <tt>ADD_POINTER</tt> command is sent to the guest firmware.) The first user for <tt>WRITE_POINTER</tt> is the VMGENID device.<br />
<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The DMA interface to fw_cfg now supports writeable blobs.<br />
<br />
The <tt>fw_cfg_io</tt> and <tt>fw_cfg_mem</tt> devices now have more slots for files; the <tt>FW_CFG_FILE_SLOTS</tt> constant has been replaced with the (internal only) <tt>x-file-slots</tt> property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6622ChangeLog/2.92017-02-20T16:17:53Z<p>Lersek: /* SMI broadcast */ mention that OVMF benefits from this</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
<br />
==== SMI broadcast ====<br />
<br />
The <tt>pc-q35-2.9</tt> machine type now offers SMI feature negotiation to interested guest firmware. The negotiation interface resembles virtio-1.0, with the <tt>etc/smi/supported-features</tt>, <tt>etc/smi/requested-features</tt>, and <tt>etc/smi/features-ok</tt> fw_cfg files. Currently one bit can be negotiated by guest firmware, <tt>ICH9_LPC_SMI_F_BROADCAST_BIT</tt>, which causes QEMU to inject a syncronous SMI (triggered through <tt>APM_CNT_IOPORT</tt>) on all VCPUs at once. This benefits the edk2 SMM driver stack as built into OVMF.<br />
<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The DMA interface to fw_cfg now supports writeable blobs.<br />
<br />
The <tt>fw_cfg_io</tt> and <tt>fw_cfg_mem</tt> devices now have more slots for files; the <tt>FW_CFG_FILE_SLOTS</tt> constant has been replaced with the (internal only) <tt>x-file-slots</tt> property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6621ChangeLog/2.92017-02-20T16:16:42Z<p>Lersek: /* fw_cfg */ write support via DMA</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
<br />
==== SMI broadcast ====<br />
<br />
The <tt>pc-q35-2.9</tt> machine type now offers SMI feature negotiation to interested guest firmware. The negotiation interface resembles virtio-1.0, with the <tt>etc/smi/supported-features</tt>, <tt>etc/smi/requested-features</tt>, and <tt>etc/smi/features-ok</tt> fw_cfg files. Currently one bit can be negotiated by guest firmware, <tt>ICH9_LPC_SMI_F_BROADCAST_BIT</tt>, which causes QEMU to inject a syncronous SMI (triggered through <tt>APM_CNT_IOPORT</tt>) on all VCPUs at once.<br />
<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The DMA interface to fw_cfg now supports writeable blobs.<br />
<br />
The <tt>fw_cfg_io</tt> and <tt>fw_cfg_mem</tt> devices now have more slots for files; the <tt>FW_CFG_FILE_SLOTS</tt> constant has been replaced with the (internal only) <tt>x-file-slots</tt> property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6620ChangeLog/2.92017-02-20T16:15:22Z<p>Lersek: /* x86 */ SMI broadcast</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
<br />
==== SMI broadcast ====<br />
<br />
The <tt>pc-q35-2.9</tt> machine type now offers SMI feature negotiation to interested guest firmware. The negotiation interface resembles virtio-1.0, with the <tt>etc/smi/supported-features</tt>, <tt>etc/smi/requested-features</tt>, and <tt>etc/smi/features-ok</tt> fw_cfg files. Currently one bit can be negotiated by guest firmware, <tt>ICH9_LPC_SMI_F_BROADCAST_BIT</tt>, which causes QEMU to inject a syncronous SMI (triggered through <tt>APM_CNT_IOPORT</tt>) on all VCPUs at once.<br />
<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The <tt>fw_cfg_io</tt> and <tt>fw_cfg_mem</tt> devices now have more slots for files; the <tt>FW_CFG_FILE_SLOTS</tt> constant has been replaced with the (internal only) <tt>x-file-slots</tt> property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6619ChangeLog/2.92017-02-20T16:07:02Z<p>Lersek: /* fw_cfg */ wikimedia doesn't use MarkDown for code insertions, sigh</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The <tt>fw_cfg_io</tt> and <tt>fw_cfg_mem</tt> devices now have more slots for files; the <tt>FW_CFG_FILE_SLOTS</tt> constant has been replaced with the (internal only) <tt>x-file-slots</tt> property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.9&diff=6618ChangeLog/2.92017-02-20T16:05:27Z<p>Lersek: /* Device emulation and assignment */ document x-file-slots for fw_cfg</p>
<hr />
<div>== System emulation ==<br />
=== Incompatible changes ===<br />
=== Future incompatible changes ===<br />
=== ARM ===<br />
==== KVM ====<br />
=== MIPS ===<br />
=== PowerPC ===<br />
==== pSeries ====<br />
=== s390 ===<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== Xen ====<br />
=== Device emulation and assignment ===<br />
==== ACPI ====<br />
==== Block devices ====<br />
==== Network devices ====<br />
==== SCSI ====<br />
==== PCI/PCIe ====<br />
==== USB ====<br />
==== VFIO ====<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
<br />
The `fw_cfg_io` and `fw_cfg_mem` devices now have more slots for files; the `FW_CFG_FILE_SLOTS` constant has been replaced with the (internal only) `x-file-slots` property. The property can be further raised in future machine types if absolutely necessary.<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
=== Monitor ===<br />
=== Migration ===<br />
=== Network ===<br />
=== Block devices and tools ===<br />
<br />
=== Tracing ===<br />
=== CLI options ===<br />
<br />
== User-mode emulation ==<br />
=== Removed target support ===<br />
=== New functionality ===<br />
== TCG ==<br />
<br />
== Build Information ==<br />
=== Documentation ===<br />
=== Build dependencies ===<br />
=== Docker Build Targets ===<br />
== Known issues ==</div>Lersekhttps://wiki.qemu.org/index.php?title=IpxeDownstreamForQemu&diff=6609IpxeDownstreamForQemu2017-02-17T15:15:53Z<p>Lersek: initial version</p>
<hr />
<div>== Motivation ==<br />
<br />
QEMU bundles iPXE binaries in the QEMU git repository and with the tarball releases. QEMU users and developers occasionally find bugs or missing features in upstream iPXE, and implement bugfixes and features for upstream iPXE. These proposed iPXE changes usually relate to PXE booting in system emulation / virtualization environments, implemented with QEMU and (optionally) KVM. They can also aim at general iPXE improvements. Occasionally QEMU contributors would like to have these iPXE patches bundled with QEMU before the upstream iPXE reviews converge. The downstream branches in [http://git.qemu-project.org/?p=ipxe.git;a=summary QEMU's iPXE mirror] serve this purpose.<br />
<br />
The downstream branches are not a hostile or competing fork of iPXE. They are meant as a periodically rebased (or merging) downstream of iPXE, that is, a dependent / consumer project. Downstream-only patches are meant to be carried only as long as their upstreaming is in progress and until the next rebase / merge, or when they are deemed unsuitable for upstreaming (but are important for QEMU).<br />
<br />
The iPXE binaries bundled with QEMU are built from these branches, and the relevant QEMU commit messages refer to commit hashes from these branches<br />
<br />
== Branch and tag names ==<br />
<br />
Downstream branches are called <tt>ipxe-qemu-<date>-<upstream_hash></tt>, where <tt><date></tt> stands for the date on which the branch was created, and <tt><upstream_hash></tt> identifies the upstream iPXE commit used as fork-off point. Putting <tt><date></tt> first keeps branch names sortable. The <tt>ipxe-qemu-</tt> branch prefix keeps the branches clearly distinguishable from any branches upstream iPXE might introduce.<br />
<br />
Snapshots (which are incorporated into the QEMU tree during development) are tagged <tt><branch>-<nr></tt>, where <tt><branch></tt> is defined above, and <tt><nr></tt> is a two-digit counter that increases monotonically.<br />
<br />
Snapshots which make it into official QEMU releases are tagged additionally. The format is <tt>ipxe-qemu-release-<qemu_release_identifier></tt>.<br />
<br />
== Maintainers ==<br />
<br />
* Gerd Hoffmann <tt><kraxel@redhat.com></tt><br />
* Ladi Prosek <tt><lprosek@redhat.com></tt><br />
<br />
== Patch submission guidelines ==<br />
<br />
Follow [http://wiki.qemu-project.org/Contribute/SubmitAPatch Contribute/SubmitAPatch], but use <tt>[ipxe-qemu PATCH]</tt> as subject prefix, and CC the maintainers.<br />
<br />
Always send your patch to upstream iPXE first, and work with the upstream iPXE community first!</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/2.8&diff=6383Planning/2.82016-11-10T16:33:55Z<p>Lersek: /* Known issues */ LP#1623276 -- fixed by qemu commit 423f7cf233fe</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2016-09-02<br />
| Beginning of development phase<br />
|-<br />
| 2016-11-01<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point.<br />
|-<br />
| 2016-11-15<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2016-11-22<br />
| Tag rc1<br />
|-<br />
| 2016-11-29<br />
| Tag rc2<br />
|-<br />
| 2016-12-06<br />
| Tag rc3<br />
|-<br />
| 2016-12-13<br />
| Tag rc4 if necessary, otherwise release<br />
|-<br />
| 2016-12-20<br />
| Release if rc4 was necessary<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
=== rc1 ===<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/2.8]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/2.8&diff=6370Planning/2.82016-11-08T19:50:51Z<p>Lersek: /* Known issues */ LP#1623276 -- iPXE patches now upstream</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2016-09-02<br />
| Beginning of development phase<br />
|-<br />
| 2016-11-01<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point.<br />
|-<br />
| 2016-11-15<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2016-11-22<br />
| Tag rc1<br />
|-<br />
| 2016-11-29<br />
| Tag rc2<br />
|-<br />
| 2016-12-06<br />
| Tag rc3<br />
|-<br />
| 2016-12-13<br />
| Tag rc4 if necessary, otherwise release<br />
|-<br />
| 2016-12-20<br />
| Release if rc4 was necessary<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
* https://bugs.launchpad.net/qemu/+bug/1623276 -- iPXE binaries bundled with QEMU 2.7 crash on KVM hosts that have no unrestricted_guest support. Radim, Bandan et al are working on the KVM insn emulation, while Laszlo posted iPXE patches to excise fxsave/fxrstor from the CONFIG=qemu build of iPXE. The iPXE maintainer committed the patches; QEMU's ipxe submodule should be updated to iPXE commit b991c67c1d91 or later, and the bundled iPXE binaries should be refreshed.<br />
<br />
=== rc1 ===<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/2.8]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=Planning/2.8&diff=6369Planning/2.82016-11-08T09:07:06Z<p>Lersek: /* Known issues */ LP#1623276</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2016-09-02<br />
| Beginning of development phase<br />
|-<br />
| 2016-11-01<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point.<br />
|-<br />
| 2016-11-15<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2016-11-22<br />
| Tag rc1<br />
|-<br />
| 2016-11-29<br />
| Tag rc2<br />
|-<br />
| 2016-12-06<br />
| Tag rc3<br />
|-<br />
| 2016-12-13<br />
| Tag rc4 if necessary, otherwise release<br />
|-<br />
| 2016-12-20<br />
| Release if rc4 was necessary<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please list all patch series or bugs which need to be fixed for the release here. That way I can be sure I don't miss any when I'm rolling release candidates.<br />
<br />
* https://bugs.launchpad.net/qemu/+bug/1623276 -- iPXE binaries bundled with QEMU 2.7 crash on KVM hosts that have no unrestricted_guest support. Radim, Bandan et al are working on the KVM insn emulation, while Laszlo posted iPXE patches to excise fxsave/fxrstor from the CONFIG=qemu build of iPXE. The iPXE maintainer is unresponsive (as of 2016-Nov-08).<br />
<br />
=== rc1 ===<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/2.8]] for full details.</div>Lersekhttps://wiki.qemu.org/index.php?title=Documentation/Networking&diff=5559Documentation/Networking2016-04-27T11:00:31Z<p>Lersek: /* User Networking (SLIRP) */ how to enable ping for the guest on Linux hosts</p>
<hr />
<div>There are two parts to networking within QEMU:<br />
* the virtual network device that is provided to the guest (e.g. a PCI network card).<br />
* the network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network).<br />
<br />
There are a range of options for each part. By default QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests), as if you had typed <tt>-net nic -net user</tt> on your command line.<br />
<br />
<br />
'''Note''' - if you specify any networking options on the command line (via <tt>-net</tt> or <tt>-netdev</tt>) then QEMU will require you to provide options sufficient to define and connect up both parts. (Forgetting to specify the backend or the network device will give a warning message such as "Warning: netdev mynet0 has no peer", "Warning: vlan 0 is not connected to host network" or "Warning: vlan 0 with no nics"; the VM will then boot but will not have functioning networking.)<br />
<br />
'''Note''' - if you are using the (default) SLiRP user networking, then ping (ICMP) will not work, though TCP and UDP will. Don't try to use ping to test your QEMU network configuration!<br />
<br />
'''Note''' - As this page is probably very brief or even incomplete you might find these pages rather useful:<br />
* [http://en.wikibooks.org/wiki/QEMU/Networking QEMU Networking] on wikibooks.org, mainly dealing with Linux hosts<br />
* [http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html QEMU Networking] on bsdwiki, showing used networking principles and dealing with BSD hosts<br />
<br />
== Creating a network backend ==<br />
There are a number of network backends to choose from depending on your environment. Create a network backend like this:<br />
<br />
-netdev TYPE,id=NAME,...<br />
<br />
The <tt>id</tt> option gives the name by which the virtual network device and the network backend are associated with each other. If you want multiple virtual network devices inside the guest they each need their own network backend. The name is used to distinguish backends from each other and must be used even when only one backend is specified.<br />
<br />
== Network backend types ==<br />
<br />
In most cases, if you don't have any specific networking requirements other than to be able to access to a web page from your guest, user networking (slirp) is a good choice. However, if you are looking to run any kind of network service or have your guest participate in a network in any meaningful way, tap is usually the best choice.<br />
<br />
=== User Networking (SLIRP) ===<br />
<br />
This is the default networking backend and generally is the easiest to use. It does not require root / Administrator privileges.<br />
It has the following limitations:<br />
<br />
* there is a lot of overhead so the performance is poor<br />
* in general, ICMP traffic does not work (so you cannot use ping within a guest)<br />
* on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host) -- see the steps below<br />
* the guest is not directly accessible from the host or the external network<br />
<br />
User Networking is implemented using "slirp", which provides a full TCP/IP stack within QEMU and uses that stack to implement a virtual NAT'd network.<br />
<br />
A typical (default) network is shown below.<br />
<br />
[[File:Slirp_concept.png]]<br />
<br />
You can configure User Networking using the <tt>-netdev user</tt> command line option.<br />
<br />
Adding the following to the qemu command line will change the network configuration to use 192.168.76.0/24 instead of the default (10.0.2.0/24) and will start guest DHCP allocation from 9 (instead of 15):<br />
<br />
-netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9<br />
<br />
You can isolate the guest from the host (and broader network) using the <tt>restrict</tt> option. For example <tt>-netdev user,id=mynet0,restrict=y</tt> or <tt>-netdev type=user,id=mynet0,restrict=yes</tt> will restrict networking to just the guest and any virtual devices. This can be used to prevent software running inside the guest from phoning home while still providing a network inside the guest. You can selectively override this using <tt>hostfwd</tt> and <tt>guestfwd</tt> options.<br />
<br />
==== Enabling ping in the guest, on Linux hosts ====<br />
<br />
* Determine the main group ID (or one supplementary group ID) of the user that will run QEMU with slirp.<br />
<br />
* In <tt>/etc/sysctl.conf</tt> (or whatever is appropriate for your host distro), make sure that the whitespace-separated, inclusive group ID range in the <tt>net.ipv4.ping_group_range</tt> sysctl includes the above group ID.<br />
<br />
For example, as root,<br />
<br />
* add a new group called <tt>unpriv_ping</tt>:<br />
<br />
groupadd unpriv_ping<br />
<br />
* set this group for a number of users as another supplementary group (note, they will have to re-login):<br />
<br />
for U in user1 user2 ... user_n; do<br />
usermod --append --groups unpriv_ping $U<br />
done<br />
<br />
* then set both sides of the inclusive range in the above sysctl to the numeric ID of the new group:<br />
<br />
(<br />
GROUP_ID=$(getent group unpriv_ping | cut -f 3 -d :)<br />
printf 'net.ipv4.ping_group_range = %u %u\n' $GROUP_ID $GROUP_ID \<br />
>> /etc/sysctl.conf<br />
)<br />
sysctl -p<br />
<br />
==== TODO ====<br />
<br />
<tt>-netdev user,id=mynet0,dns=xxx</tt><br />
<br />
<tt>-netdev user,id=mynet0,tftp=xxx,bootfile=yyy</tt><br />
<br />
<tt>-netdev user,id=mynet0,smb=xxx,smbserver=yyy</tt><br />
<br />
<tt>-netdev user,id=mynet0,hostfwd=hostip:hostport-guestip:guestport</tt><br />
<br />
<tt>-netdev user,id=mynet0,guestfwd=</tt><br />
<br />
<tt>-netdev user,id=mynet0,host=xxx,hostname=yyy</tt><br />
<br />
=== Tap ===<br />
<br />
The [[Documentation/Networking/Tap|tap]] networking backend makes use of a tap networking device in the host. It offers very good performance and can be configured to create virtually any type of network topology. Unfortunately, it requires configuration of that network topology in the host which tends to be different depending on the operating system you are using. Generally speaking, it also requires that you have root privileges.<br />
<br />
-netdev tap,id=mynet0<br />
<br />
=== VDE ===<br />
<br />
The [[Documentation/Networking/VDE|VDE]] networking backend uses the [http://vde.sourceforge.net Virtual Distributed Ethernet] infrastructure to network guests. Unless you specifically know that you want to use VDE, it is probably not the right backend to use.<br />
<br />
=== Socket ===<br />
<br />
The [[Documentation/Networking/Socket|socket]] networking backend, together with QEMU VLANs, allow you to create a network of guests that can see each other. It's primarily useful in extending the network created by [[Documentation/Networking/Slirp]] to multiple virtual machines. In general, if you want to have multiple guests communicate, [[Documentation/Networking/Tap|tap]] is a better choice unless you do not have root access to the host environment.<br />
<br />
-netdev socket,id=mynet0,listen=:1234<br />
-netdev socket,id=mynet0,connect=:1234<br />
<br />
== Creating a virtual network device ==<br />
The virtual network device that you choose depends on your needs and the guest environment (i.e. the hardware that you are emulating). For example, if you are emulating a particular embedded board, then you should use the virtual network device that matches that embedded board's configuration.<br />
<br />
On machines that have PCI bus, there are a wider range of options. The e1000 is the default network adapter in qemu. The rtl8139 is the default network adapter in qemu-kvm. In both projects, the virtio-net (para-virtualised) network adapter has the best performance, but requires special guest driver support.<br />
<br />
Use the <tt>-device</tt> option to add a particular virtual network device to your virtual machine:<br />
<br />
-device TYPE,netdev=NAME<br />
<br />
The <tt>netdev</tt> is the name of a previously defined <tt>-netdev</tt>. The virtual network device will be associated with this network backend.<br />
<br />
Note that there are other device options to select alternative devices, or to change some aspect of the device. For example, you want something like:<br />
<tt>-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS</tt>, where <tt>DEVNAME</tt> is the device (e.g. <tt>i82559c</tt> for an Intel i82559C Ethernet device), <tt>NET_ID</tt> is the network identifier to attach the device to (see discussion of <tt>-netdev</tt> below), <tt>MACADDR</tt> is the MAC address for the device, and <tt>DEV-OPTS</tt> are any additional device options that you may wish to pass (e.g. <tt>bus=PCI-BUS,addr=DEVFN</tt> to control the PCI device address), if supported by the device.<br />
<br />
Use <tt>-device ?</tt> to get a list of the devices (including network devices) you can add using the <tt>-device</tt> option for a particular guest. Remember that <tt>?</tt> is a shell metacharacter, so you may need to use <tt>-device \?</tt> on the command-line.<br />
<br />
== Monitoring Networking ==<br />
<br />
You can monitor the network configuration using <tt>info network</tt> and <tt>info usernet</tt> commands.<br />
<br />
You can capture network traffic from within qemu using the <tt>-net dump</tt> command line option. See [http://blog.vmsplice.net/2011/04/how-to-capture-vm-network-traffic-using.html Stefan Hajnoczi's blog post] on this feature.<br />
<br />
== The legacy -net option ==<br />
QEMU previously used the <tt>-net nic</tt> option instead of <tt>-device DEVNAME</tt> and <tt>-net TYPE</tt> instead of <tt>-netdev TYPE</tt>. This is considered obsolete since QEMU 0.12, although it continues to work.<br />
<br />
The legacy syntax to create virtual network devices is:<br />
<br />
-net nic,model=MODEL<br />
<br />
You can use <tt>-net nic,model=?</tt> to get a list of valid network devices that you can pass to the <tt>-net nic</tt> option. Note that these model names are different from the <tt>-device ?</tt> names and are therefore only useful if you are using the <tt>-net nic,model=MODEL</tt> syntax. [If you'd like to know all of the virtual network devices that are currently provided in QEMU, a search for "NetClientInfo" in the source code may be useful.]<br />
<br />
=== QEMU "VLANs" ===<br />
The obsolete <tt>-net</tt> syntax automatically created an emulated hub (called a QEMU "VLAN", for virtual LAN) that forwards traffic from any device connected to it to every other device on the "VLAN". It is '''not''' an 802.1q VLAN, just an isolated network segment. When creating multiple backends using the <tt>-net</tt> syntax For example:<br />
<br />
-net user,vlan=0 -net nic,vlan=0 -net user,vlan=1 -net nic,vlan=1<br />
<br />
== Disabling networking entirely ==<br />
<br />
If you don't specify any network configuration options, then QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests). If you don't want any networking at all you can suppress this default with:<br />
<br />
-net none<br />
<br />
The more general option <tt>-nodefaults</tt> also suppresses the default networking configuration, as well as the creation of several other default devices.<br />
<br />
== How do I... ==<br />
<br />
* Use tap to let guests be visible on the host network<br />
* [[Documentation/Networking/NAT|Use tap with a wireless adapter on the host]]<br />
* Forward ports with slirp<br />
* Pass QEMU a physical card rather than emulation/simulation.<br />
<br />
== Guest Hints ==<br />
<br />
<b>Mac OS 10.2</b><br><br />
Currently no supplied nic works with this operating system.<br />
<br />
<b>Mac OS 10.4</b><br><br />
-usb -netdev user,id=mynet0 -device usb-net,netdev=mynet0<br><br />
Open System Preferences and go to the Network pane. Select the Ethernet Adapter from the "Show" drop down menu. From the TCP/IP tab, push the Apply Now button at the bottom. This will make the nic work. <br />
<br />
<b>Windows XP</b><br><br />
-net nic,model=rtl8139 -net user<br><br />
Windows will automatically detect and use the nic.<br />
<br />
<b>Linux</b><br><br />
Works using default network settings.<br />
<br><br><br><br />
Last updated: December 6, 2015</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.5&diff=5230ChangeLog/2.52015-12-08T09:04:39Z<p>Lersek: IDE: Q35/AHCI support in OVMF is not experimental; adapt "multi-sector AHCI ATAPI PIO" language</p>
<hr />
<div>== System emulation ==<br />
* guard pages are now inserted after guest RAM, to guard against guest-triggered buffer overflow attacks<br />
=== Incompatible changes ===<br />
* The mips32r5-generic CPU was renamed to P5600<br />
* Host floppy device pass-through (block driver “host_floppy”) has been removed; it is still possible to use them just like any other device file, however, a medium change will no longer be passed through to the guest<br />
<br />
=== Future incompatible changes ===<br />
* Three options are using different names on the command line and in configuration file. In particular:<br />
** The "acpi" configuration file section matches command-line option "acpitable";<br />
** The "boot-opts" configuration file section matches command-line option "boot";<br />
** The "smp-opts" configuration file section matches command-line option "smp".<br />
:-readconfig will standardize on the name for the command line option.<br />
* Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.<br />
* Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.<br />
* Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.<br />
* Block device parameter aio=native has no effect if qemu is compiled without libaio support. It will be made an error.<br />
* A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.<br />
* QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.<br />
* The s390-virtio machine has been deprecated for 2.5; it will be removed in 2.6. s390x users should switch to the (default) s390-ccw-virtio machine.<br />
* Changes to device "sdhci-pci" will make migration between old and new versions impossible.<br />
<br />
=== Alpha ===<br />
=== ARM ===<br />
* The "virt" machine type supports passing SMBIOS to the firmware.<br />
* Semihosting support on AArch64<br />
* New i.MX31 SoC.<br />
* The ZynqMP and Allwinner A10 platforms support AHCI.<br />
* Support for VGICv3 in KVM<br />
* Support for GICv3 in the ACPI tables.<br />
* The "virt" machine now has a second PCIe MMIO region of 512GB in size in high memory. Note that older 32-bit ARM Linux kernels built without CONFIG_LPAE have a bug where the presence of this region in high memory causes them to refuse to use the PCIe controller at all. In this case you can either reconfigure your kernel with CONFIG_LPAE=y, or pass QEMU the "-machine highmem=off" option to disable the use of high memory for PCIe. The kernel bug is expected to be fixed in Linux kernel release 4.4.<br />
=== MIPS ===<br />
* The mips32r5-generic CPU was renamed to P5600<br />
* Improvements to MIPS R6 emulation<br />
<br />
=== PowerPC ===<br />
==== pSeries ====<br />
* Support for memory hotplug<br />
* The shipped version of SLOF includes GPT support.<br />
* Using VFIO doesn't need spapr-pci-vfio-host-bridge anymore.<br />
* virtio-vga now supported on sPAPR guests.<br />
* [[Features/HRandomHypercall | H_RANDOM hypercall]] device for providing good random data to the guests.<br />
==== Mac99 ====<br />
* Improve ability to boot MacOS 9 (based upon GSoC project "Implement support for Mac OS 9 in QEMU " by Cormac O'Brien)<br />
<br />
=== s390 ===<br />
* Storage keys are migrated.<br />
* New "info skeys" command in HMP to dump the storage key for a given address.<br />
* Support for virtio 1 in the virtio-ccw devices.<br />
** A maximum virtio-ccw revision can be specified via the "max_revision" property: max_revision=0 may be used to enforce usage of legacy virtio mode.<br />
* Support for boot from El Torito iso images on virtio-blk has been added.<br />
<br />
=== SH ===<br />
=== SPARC ===<br />
<br />
* sun4u: Fix EBus device enumeration under FreeBSD SPARC64 (OpenBIOS)<br />
<br />
=== TileGX ===<br />
* New target.<br />
=== x86 ===<br />
* The emulated IOMMU (VT-d) supports devices behind a bridge<br />
* QEMU will warn when using a "-cpu" model that includes unsupported features. These features are disabled automatically, just like in previous versions of QEMU<br />
* /machine/icc-bridge was removed from the QOM tree. Software relying on icc-bridge to find CPU objects should use the "qom_path" field of "query-cpus" QMP command<br />
<br />
==== CPU models and features ====<br />
* Haswell and Broadwell CPU models now include ABM<br />
* Cache information passthrough (which was enabled by default on "-cpu host") is now disabled by default<br />
* ABM, POPCNT, and SSE4a are not enabled in the default CPU models (qemu64, qemu32) anymore, as many hosts don't support it<br />
* RDTSCP was removed from AMD CPU models, as current KVM versions can't expose RDTSCP to guests in AMD hosts<br />
* New Intel memory instructions (clflushopt/clwb/pcommit) are now supported<br />
* TCG now supports Debug Extensions (CR4.DE)<br />
<br />
==== KVM ====<br />
* Support for Hyper-V-compatible reporting of crashes.<br />
<br />
==== Xen ====<br />
* Support for passthrough of Intel integrated GPUs.<br />
<br />
=== Device emulation and assignment ===<br />
* fw_cfg supports a DMA interface on ARM and x86. This interface makes -kernel/-initrd much faster if supported by the firmware.<br />
** SeaBIOS supports the DMA interface starting with release 1.9.0 (commit 06316c9d).<br />
** edk2 / OVMF (= UEFI guest fw built for x86 VMs) does not support the DMA interface. (OVMF is not trying to be part of the competition with containers, and the non-DMA interface is fast enough for all other use cases. With OVMF, the gains from the DMA interface are insignificant, both in absolute terms and relative to how long OVMF boots anyway.)<br />
** edk2 / ArmVirtQemu (= UEFI guest fw for ARM VMs) supports the DMA interface starting with git commit 953bcbcc / SVN r18545. (Unlike in x86 guests, the DMA interface makes a significant difference -- e.g., for libguestfs startup and "virt-install --location" --, because MMIO traps are very costly on aarch64 KVM.)<br />
==== ACPI ====<br />
==== Audio ====<br />
==== Block devices ====<br />
==== Character devices ====<br />
==== IDE ====<br />
* AHCI ATAPI PIO transfers greater than one sector are fixed. This helps on OVMF, which utilizes such transfers.<br />
* CVE-2015-6855: Non-ATAPI commands to ATAPI devices are now rejected, preventing a divide-by-zero crash.<br />
* Zero byte count limits will no longer hang ATAPI drives.<br />
* ATAPI PIO reads, when the byte count limit is set to the ATAPI block size, are now asynchronous. This should help to prevent hangs due to missing CDROM media mounted via NFS.<br />
<br />
==== Mouse/keyboard ====<br />
==== Network ====<br />
==== SCSI ====<br />
* scsi-generic devices now can be used together with a "readonly=on" backend.<br />
==== Shared memory device ====<br />
* A sample implementation of the ivshmem client and ivhsmem server is included with QEMU.<br />
* ivshmem supports a new "x-memdev" property that uses a memory object for the backend. This makes it possible to use ivshmem with a hugetlbfs backend. This property is experimental and may be removed in future release in favour of an alternative ivshmem device.<br />
* Use kvm irqfd for msi notifications<br />
* Protocol change, native long -> LE int64_t<br />
<br />
==== PCI/PCIe ====<br />
* hotplug support added for multifunction devices. To use, add all functions except function 0 first. Adding function 0 exposes the device to the guest. Request removal on function 0. On guest acknowledge, all functions are ejected together.<br />
<br />
==== TPM ====<br />
==== VFIO ====<br />
==== virtio ====<br />
* virtio-gpu now supports 3D mode<br />
* vhost-user now supports live migration. client changes are required to enable this. When used with an old client without migration support, vhost-user will now block migration (instead of failing silently)<br />
* vhost-user now supports multi-queue. Use queues=# to enable this. client changes are required to enable this mode. When used with an old client without multi-queue support, device will automatically fall back on using a single pair of queues.<br />
* vhost-user protocol now includes protocol feature negotiation, including multiple new messages. When used with old clients, all new messages are automatically disabled. <br />
* vhost-user no longer sents the RESET_OWNER message on device stop. The only QEMU version that sent it was 2.4, the message is now officially deprecated.<br />
* migration now works when virtio 1 is enabled for virtio-pci<br />
* For virtio-pci, virtio 1 performance on kvm on Intel CPUs has been improved (on kernel 4.4 and up).<br />
* a new flag modern-pio-notify can be used to enable PIO for notifications in virtio 1 mode, to improve performance for host kernels older than 4.4, and processors without EPT support.<br />
* virtio devices can now be placed on the pci express bus<br />
* vhost is no longer disabled when guest does not use MSI-X. The vhostforce flag is no longer required.<br />
* in virtio 1 mode, scsi passthrough is now disabled for virtio blk<br />
* Please note that for virtio-pci, the modern (virtio 1) interface is still disabled by default. To enable, set the flag disable-modern=off.<br />
<br />
==== VGA ====<br />
<br />
=== Character devices ===<br />
=== GUI ===<br />
* New syntax for enabling TLS in the VNC server:<br />
** Equivalent to <tt>-vnc hostname:0,tls</tt>: <tt>-object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0</tt><br />
** Equivalent to <tt>-vnc hostname:0,tls,x509=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0</tt><br />
** Equivalent to <tt>-vnc hostname:0,tls,x509verify=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0</tt><br />
* The Cocoa GUI does not have show an 'open image file' dialog box anymore even if QEMU is started without arguments<br />
* Thu curses GUI supports 256 colors and line graphics.<br />
<br />
=== Monitor ===<br />
* New "info iothreads" command.<br />
* New "query-qmp-schema" command allows the caller to [[Features/QMP/Introspection | introspect the QMP schema]] used by QEMU.<br />
<br />
=== Migration ===<br />
* [[Features/PostCopyLiveMigration | Postcopy migration]] for migration of large/busy guests<br />
* A more flexible [[Features/AutoconvergeLiveMigration | auto-converge mechanism]] (for busy guests)<br />
<br />
=== Network ===<br />
* Support for multiqueue in vhost-user.<br />
* Support for network filters. Currently, the only filter objects are "filter-buffer", which batches packets every N microseconds, and "filter-dump", which can be used to log the network traffic in a file. Filters are attached to a netdev device using e.g. "-object filter-buffer,id=filter,netdev=net0,queue=rx,interval=1000" (which creates a 1ms filter-buffer).<br />
=== Block devices in system emulation ===<br />
=== Command-line options ===<br />
=== TCG ===<br />
* Improved system emulation performance for targets with software TLBs (e.g. SPARC).<br />
* Initial support for [[Features/record-replay | record/replay]].<br />
<br />
== Block devices and tools ==<br />
* The HMP “change” command (QMP's “blockdev-change-medium”) now allows you to change the read-only mode of the device (e.g. when inserting a read-only floppy disk image into a previously R/W drive)<br />
* Fine-grained control over a block device's tray with the new QMP commands “blockdev-open-tray”, “blockdev-close-tray”, “blockdev-insert-medium”, and “blockdev-remove-medium”<br />
* New “reopen” command in qemu-io<br />
* block-dirty-bitmap-add and block-dirty-bitmap-clear transaction actions have been added to now fully support (transient) incremental bitmap usage and management.<br />
* QMP transactions now support a "completion-mode" parameter which controls the completion behavior of jobs launched by transactions, which will allow them to fail together. See the [https://github.com/qemu/qemu/blob/master/docs/bitmaps.md bitmaps.md] documentation for how this affects incremental backups.<br />
* Block I/O accounting can now report average queue depth, min/avg/max latency, and failed/invalid request counts<br />
* qcow2 learnt a new option ''cache-clean-interval'', which allows to free unused cache entries after some time.<br />
* An experimental QMP command ''x-blockdev-del'' was added as a completement for the (also still experimental) ''blockdev-add'' command.<br />
* A new QMP command ''blockdev-snapshot'' that allows creating a snapshot using as overlay an image previously opened with ''blockdev-add''. This allows opening the overlay image with arbitrary run-time options, solving one of the limitations of ''blockdev-snapshot-sync''.<br />
* It is now possible to open an image without its backing file by specifying the empty string as a backing file reference when opening the image. This is useful for creating snapshots, since images opened with ''blockdev-add'' are not supposed to have a backing file before the ''blockdev-snapshot'' operation.<br />
* Host CD-ROM support now works on Mac OS X hosts<br />
* Host floppy support has been removed (it was deprecated in QEMU 2.3)<br />
* The temporary "x-data-plane=on/off" option for virtio-blk device is removed now, all users are requested to use the canonical "-object iothread,id=<id> -device virtio-blk,iothread=<id>,..." syntax.<br />
<br />
== Audio ==<br />
<br />
== Guest agent ==<br />
* Add an optional qemu-ga.conf system configuration<br />
* Support for dumping the configuration current file with --dump-conf<br />
* Win32 support for guest-set-user-password<br />
* New command guest-exec<br />
<br />
== User-mode emulation ==<br />
* The configure option --disable-guest-base has been removed.<br />
== Build dependencies ==<br />
* libcacard has been moved to a standalone project, hosted at git://anongit.freedesktop.org/spice/libcacard. The libcacard library from QEMU 2.4 can also be used to build QEMU 2.5.<br />
* virtio-gpu 3D support requires virglrenderer.<br />
== Known issues ==<br />
* SDL audio only works with SDL 1.x.<br />
* 64-bit QEMU crashes on Windows ([http://repo.or.cz/w/qemu/ar7.git/commit/8fa9c07c9a33174905e67589bea6be3e278712cb Fix])</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/2.5&diff=5229ChangeLog/2.52015-12-08T08:57:45Z<p>Lersek: explain which guest firmware versions support the DMA interface for fw_cfg</p>
<hr />
<div>== System emulation ==<br />
* guard pages are now inserted after guest RAM, to guard against guest-triggered buffer overflow attacks<br />
=== Incompatible changes ===<br />
* The mips32r5-generic CPU was renamed to P5600<br />
* Host floppy device pass-through (block driver “host_floppy”) has been removed; it is still possible to use them just like any other device file, however, a medium change will no longer be passed through to the guest<br />
<br />
=== Future incompatible changes ===<br />
* Three options are using different names on the command line and in configuration file. In particular:<br />
** The "acpi" configuration file section matches command-line option "acpitable";<br />
** The "boot-opts" configuration file section matches command-line option "boot";<br />
** The "smp-opts" configuration file section matches command-line option "smp".<br />
:-readconfig will standardize on the name for the command line option.<br />
* Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.<br />
* Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.<br />
* Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.<br />
* Block device parameter aio=native has no effect if qemu is compiled without libaio support. It will be made an error.<br />
* A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.<br />
* QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.<br />
* The s390-virtio machine has been deprecated for 2.5; it will be removed in 2.6. s390x users should switch to the (default) s390-ccw-virtio machine.<br />
* Changes to device "sdhci-pci" will make migration between old and new versions impossible.<br />
<br />
=== Alpha ===<br />
=== ARM ===<br />
* The "virt" machine type supports passing SMBIOS to the firmware.<br />
* Semihosting support on AArch64<br />
* New i.MX31 SoC.<br />
* The ZynqMP and Allwinner A10 platforms support AHCI.<br />
* Support for VGICv3 in KVM<br />
* Support for GICv3 in the ACPI tables.<br />
* The "virt" machine now has a second PCIe MMIO region of 512GB in size in high memory. Note that older 32-bit ARM Linux kernels built without CONFIG_LPAE have a bug where the presence of this region in high memory causes them to refuse to use the PCIe controller at all. In this case you can either reconfigure your kernel with CONFIG_LPAE=y, or pass QEMU the "-machine highmem=off" option to disable the use of high memory for PCIe. The kernel bug is expected to be fixed in Linux kernel release 4.4.<br />
=== MIPS ===<br />
* The mips32r5-generic CPU was renamed to P5600<br />
* Improvements to MIPS R6 emulation<br />
<br />
=== PowerPC ===<br />
==== pSeries ====<br />
* Support for memory hotplug<br />
* The shipped version of SLOF includes GPT support.<br />
* Using VFIO doesn't need spapr-pci-vfio-host-bridge anymore.<br />
* virtio-vga now supported on sPAPR guests.<br />
* [[Features/HRandomHypercall | H_RANDOM hypercall]] device for providing good random data to the guests.<br />
==== Mac99 ====<br />
* Improve ability to boot MacOS 9 (based upon GSoC project "Implement support for Mac OS 9 in QEMU " by Cormac O'Brien)<br />
<br />
=== s390 ===<br />
* Storage keys are migrated.<br />
* New "info skeys" command in HMP to dump the storage key for a given address.<br />
* Support for virtio 1 in the virtio-ccw devices.<br />
** A maximum virtio-ccw revision can be specified via the "max_revision" property: max_revision=0 may be used to enforce usage of legacy virtio mode.<br />
* Support for boot from El Torito iso images on virtio-blk has been added.<br />
<br />
=== SH ===<br />
=== SPARC ===<br />
<br />
* sun4u: Fix EBus device enumeration under FreeBSD SPARC64 (OpenBIOS)<br />
<br />
=== TileGX ===<br />
* New target.<br />
=== x86 ===<br />
* The emulated IOMMU (VT-d) supports devices behind a bridge<br />
* QEMU will warn when using a "-cpu" model that includes unsupported features. These features are disabled automatically, just like in previous versions of QEMU<br />
* /machine/icc-bridge was removed from the QOM tree. Software relying on icc-bridge to find CPU objects should use the "qom_path" field of "query-cpus" QMP command<br />
<br />
==== CPU models and features ====<br />
* Haswell and Broadwell CPU models now include ABM<br />
* Cache information passthrough (which was enabled by default on "-cpu host") is now disabled by default<br />
* ABM, POPCNT, and SSE4a are not enabled in the default CPU models (qemu64, qemu32) anymore, as many hosts don't support it<br />
* RDTSCP was removed from AMD CPU models, as current KVM versions can't expose RDTSCP to guests in AMD hosts<br />
* New Intel memory instructions (clflushopt/clwb/pcommit) are now supported<br />
* TCG now supports Debug Extensions (CR4.DE)<br />
<br />
==== KVM ====<br />
* Support for Hyper-V-compatible reporting of crashes.<br />
<br />
==== Xen ====<br />
* Support for passthrough of Intel integrated GPUs.<br />
<br />
=== Device emulation and assignment ===<br />
* fw_cfg supports a DMA interface on ARM and x86. This interface makes -kernel/-initrd much faster if supported by the firmware.<br />
** SeaBIOS supports the DMA interface starting with release 1.9.0 (commit 06316c9d).<br />
** edk2 / OVMF (= UEFI guest fw built for x86 VMs) does not support the DMA interface. (OVMF is not trying to be part of the competition with containers, and the non-DMA interface is fast enough for all other use cases. With OVMF, the gains from the DMA interface are insignificant, both in absolute terms and relative to how long OVMF boots anyway.)<br />
** edk2 / ArmVirtQemu (= UEFI guest fw for ARM VMs) supports the DMA interface starting with git commit 953bcbcc / SVN r18545. (Unlike in x86 guests, the DMA interface makes a significant difference -- e.g., for libguestfs startup and "virt-install --location" --, because MMIO traps are very costly on aarch64 KVM.)<br />
==== ACPI ====<br />
==== Audio ====<br />
==== Block devices ====<br />
==== Character devices ====<br />
==== IDE ====<br />
* AHCI ATAPI PIO transfers greater than one sector are fixed. This should help on experimental OVMF firmware builds that utilize such transfers.<br />
* CVE-2015-6855: Non-ATAPI commands to ATAPI devices are now rejected, preventing a divide-by-zero crash.<br />
* Zero byte count limits will no longer hang ATAPI drives.<br />
* ATAPI PIO reads, when the byte count limit is set to the ATAPI block size, are now asynchronous. This should help to prevent hangs due to missing CDROM media mounted via NFS.<br />
<br />
==== Mouse/keyboard ====<br />
==== Network ====<br />
==== SCSI ====<br />
* scsi-generic devices now can be used together with a "readonly=on" backend.<br />
==== Shared memory device ====<br />
* A sample implementation of the ivshmem client and ivhsmem server is included with QEMU.<br />
* ivshmem supports a new "x-memdev" property that uses a memory object for the backend. This makes it possible to use ivshmem with a hugetlbfs backend. This property is experimental and may be removed in future release in favour of an alternative ivshmem device.<br />
* Use kvm irqfd for msi notifications<br />
* Protocol change, native long -> LE int64_t<br />
<br />
==== PCI/PCIe ====<br />
* hotplug support added for multifunction devices. To use, add all functions except function 0 first. Adding function 0 exposes the device to the guest. Request removal on function 0. On guest acknowledge, all functions are ejected together.<br />
<br />
==== TPM ====<br />
==== VFIO ====<br />
==== virtio ====<br />
* virtio-gpu now supports 3D mode<br />
* vhost-user now supports live migration. client changes are required to enable this. When used with an old client without migration support, vhost-user will now block migration (instead of failing silently)<br />
* vhost-user now supports multi-queue. Use queues=# to enable this. client changes are required to enable this mode. When used with an old client without multi-queue support, device will automatically fall back on using a single pair of queues.<br />
* vhost-user protocol now includes protocol feature negotiation, including multiple new messages. When used with old clients, all new messages are automatically disabled. <br />
* vhost-user no longer sents the RESET_OWNER message on device stop. The only QEMU version that sent it was 2.4, the message is now officially deprecated.<br />
* migration now works when virtio 1 is enabled for virtio-pci<br />
* For virtio-pci, virtio 1 performance on kvm on Intel CPUs has been improved (on kernel 4.4 and up).<br />
* a new flag modern-pio-notify can be used to enable PIO for notifications in virtio 1 mode, to improve performance for host kernels older than 4.4, and processors without EPT support.<br />
* virtio devices can now be placed on the pci express bus<br />
* vhost is no longer disabled when guest does not use MSI-X. The vhostforce flag is no longer required.<br />
* in virtio 1 mode, scsi passthrough is now disabled for virtio blk<br />
* Please note that for virtio-pci, the modern (virtio 1) interface is still disabled by default. To enable, set the flag disable-modern=off.<br />
<br />
==== VGA ====<br />
<br />
=== Character devices ===<br />
=== GUI ===<br />
* New syntax for enabling TLS in the VNC server:<br />
** Equivalent to <tt>-vnc hostname:0,tls</tt>: <tt>-object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0</tt><br />
** Equivalent to <tt>-vnc hostname:0,tls,x509=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0</tt><br />
** Equivalent to <tt>-vnc hostname:0,tls,x509verify=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0</tt><br />
* The Cocoa GUI does not have show an 'open image file' dialog box anymore even if QEMU is started without arguments<br />
* Thu curses GUI supports 256 colors and line graphics.<br />
<br />
=== Monitor ===<br />
* New "info iothreads" command.<br />
* New "query-qmp-schema" command allows the caller to [[Features/QMP/Introspection | introspect the QMP schema]] used by QEMU.<br />
<br />
=== Migration ===<br />
* [[Features/PostCopyLiveMigration | Postcopy migration]] for migration of large/busy guests<br />
* A more flexible [[Features/AutoconvergeLiveMigration | auto-converge mechanism]] (for busy guests)<br />
<br />
=== Network ===<br />
* Support for multiqueue in vhost-user.<br />
* Support for network filters. Currently, the only filter objects are "filter-buffer", which batches packets every N microseconds, and "filter-dump", which can be used to log the network traffic in a file. Filters are attached to a netdev device using e.g. "-object filter-buffer,id=filter,netdev=net0,queue=rx,interval=1000" (which creates a 1ms filter-buffer).<br />
=== Block devices in system emulation ===<br />
=== Command-line options ===<br />
=== TCG ===<br />
* Improved system emulation performance for targets with software TLBs (e.g. SPARC).<br />
* Initial support for [[Features/record-replay | record/replay]].<br />
<br />
== Block devices and tools ==<br />
* The HMP “change” command (QMP's “blockdev-change-medium”) now allows you to change the read-only mode of the device (e.g. when inserting a read-only floppy disk image into a previously R/W drive)<br />
* Fine-grained control over a block device's tray with the new QMP commands “blockdev-open-tray”, “blockdev-close-tray”, “blockdev-insert-medium”, and “blockdev-remove-medium”<br />
* New “reopen” command in qemu-io<br />
* block-dirty-bitmap-add and block-dirty-bitmap-clear transaction actions have been added to now fully support (transient) incremental bitmap usage and management.<br />
* QMP transactions now support a "completion-mode" parameter which controls the completion behavior of jobs launched by transactions, which will allow them to fail together. See the [https://github.com/qemu/qemu/blob/master/docs/bitmaps.md bitmaps.md] documentation for how this affects incremental backups.<br />
* Block I/O accounting can now report average queue depth, min/avg/max latency, and failed/invalid request counts<br />
* qcow2 learnt a new option ''cache-clean-interval'', which allows to free unused cache entries after some time.<br />
* An experimental QMP command ''x-blockdev-del'' was added as a completement for the (also still experimental) ''blockdev-add'' command.<br />
* A new QMP command ''blockdev-snapshot'' that allows creating a snapshot using as overlay an image previously opened with ''blockdev-add''. This allows opening the overlay image with arbitrary run-time options, solving one of the limitations of ''blockdev-snapshot-sync''.<br />
* It is now possible to open an image without its backing file by specifying the empty string as a backing file reference when opening the image. This is useful for creating snapshots, since images opened with ''blockdev-add'' are not supposed to have a backing file before the ''blockdev-snapshot'' operation.<br />
* Host CD-ROM support now works on Mac OS X hosts<br />
* Host floppy support has been removed (it was deprecated in QEMU 2.3)<br />
* The temporary "x-data-plane=on/off" option for virtio-blk device is removed now, all users are requested to use the canonical "-object iothread,id=<id> -device virtio-blk,iothread=<id>,..." syntax.<br />
<br />
== Audio ==<br />
<br />
== Guest agent ==<br />
* Add an optional qemu-ga.conf system configuration<br />
* Support for dumping the configuration current file with --dump-conf<br />
* Win32 support for guest-set-user-password<br />
* New command guest-exec<br />
<br />
== User-mode emulation ==<br />
* The configure option --disable-guest-base has been removed.<br />
== Build dependencies ==<br />
* libcacard has been moved to a standalone project, hosted at git://anongit.freedesktop.org/spice/libcacard. The libcacard library from QEMU 2.4 can also be used to build QEMU 2.5.<br />
* virtio-gpu 3D support requires virglrenderer.<br />
== Known issues ==<br />
* SDL audio only works with SDL 1.x.<br />
* 64-bit QEMU crashes on Windows ([http://repo.or.cz/w/qemu/ar7.git/commit/8fa9c07c9a33174905e67589bea6be3e278712cb Fix])</div>Lersekhttps://wiki.qemu.org/index.php?title=ChangeLog/1.5&diff=3632ChangeLog/1.52013-05-27T18:28:08Z<p>Lersek: Mention CVE-2013-2007 and possible guest admin todo</p>
<hr />
<div>== General ==<br />
<br />
* 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.<br />
* QEMU now uses ''poll'' rather than ''select'', and thus does not have any restriction on the number of open file descriptors.<br />
<br />
== System emulation ==<br />
<br />
=== Device emulation ===<br />
<br />
==== Audio ====<br />
* 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".<br />
* The "shortcut" -soundhw option is now available for all targets that have a PCI bus.<br />
<br />
==== Device assignment ====<br />
* 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.<br />
* VFIO devices support the bootindex= property to override the default boot order for assigned PCI devices.<br />
<br />
==== USB ====<br />
* Experimental support for USB 3.0 streams, both in the nec-usb-xhci controller and in the usb-uas USB-attached SCSI device emulation.<br />
* 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).<br />
<br />
==== SCSI ====<br />
* QEMU can now emulate the VMware PVSCSI device using "-device pvscsi".<br />
* QEMU can now use tcm_vhost, a virtio-scsi device model based on the Linux-iSCSI implementation of SCSI.<br />
<br />
==== Network cards ====<br />
* QEMU can now emulate the VMware paravirtualized network card using "-device vmxnet3".<br />
<br />
=== ARM ===<br />
* 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.<br />
* The Zynq board provides a SD host controller interface.<br />
* 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.)<br />
* Incorrect handling of the SRS instruction in Thumb mode has been fixed.<br />
* Performance of TCG emulation of ARM targets is improved over previous releases.<br />
* Migration and vm save/load now works correctly on the vexpress-a15 and vexpress-a9 models.<br />
<br />
=== PPC ===<br />
* Various improvements to TCG code generation<br />
* KVM synchronizes more state<br />
* Fix a few issues that blocked Mac OS X from working (still not 100% there though!)<br />
* Refactoring and improvement of soft mmu emulation for book3s<br />
* Implement various new instructions for ISA 2.05 and ISA 2.06 compatibility (-cpu POWER7)<br />
* Implement support for KVM based e500 family watchdog<br />
<br />
=== s390x ===<br />
* Various accuracy fixes for device emulation<br />
* Faster I/O hypercalls<br />
* Add firmware to boot from virtio-ccw disks<br />
* Guest kernel panics are notified to the host<br />
<br />
=== SPARC ===<br />
* Improve sun4u interrupt mapping, so that multiple PCI devices can be used simultaneously<br />
<br />
=== x86 ===<br />
* x86 supports emulation of a TPM (Trusted Platform Module) on machines that have a hardware TPM<br />
* Various speedups in TCG emulation of x86<br />
* The iPXE ROMs that are distributed with QEMU support EFI<br />
* TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.<br />
* A paravirtual device is included that lets the guest notifies kernel panics to the host.<br />
* CPU hot-add support with cpu-add QMP command. More details [[Features/CPUHotplug#cpu-add_interface|Features/CPUHotplug]].<br />
* new CPU properties "feature-words" and "filtered-features" to allow introspection of supported and not supported CPU features.<br />
** 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<br />
<br />
=== QMP ===<br />
* QEMU now generates a DEVICE_DELETED event when the guest acknowledges a device hot-unplug operation.<br />
* Much better handling for non-ASCII codepoints in JSON strings<br />
<br />
=== Character devices ===<br />
* Character devices gained support for flow control. More details in [[Features/ChardevFlowControl]]<br />
* All kinds of character devices can now be hot-plugged. Character device hotplug is also supported from the "human" monitor.<br />
<br />
=== Block devices ===<br />
* 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").<br />
* Sheepdog drives can also be specified with URIs.<br />
* iSCSI disks support on-line resizing using block_resize. Similar to block devices, the resize has to be done first outside QEMU.<br />
* Various performance improvements in qcow2 internal snapshots (savevm).<br />
* The NBD backend has improved latency.<br />
* qemu-nbd can now skip image format probing using the -f/--format command-line option.<br />
* 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.<br />
* Secure Shell (ssh) support. Access remote disks over ssh using <code>qemu -drive file=ssh://host/path/to/file</code><br />
<br />
=== Live Migration ===<br />
* Further improvements in throughput (up to +130%: 4.2 Gbps in 1.5 vs 1.8 Gbps in 1.4) and latency.<br />
<br />
=== User interface ===<br />
* QEMU now provides a GTK+ interface. The interface uses the VTE library to provide better terminal emulation for serial consoles and the monitor.<br />
* A new VNC extension has been added to communicate LED state changes for the keyboard.<br />
<br />
=== VNC ===<br />
* Websocket connections can now be encrypted with TLS.<br />
<br />
== User-mode emulation ==<br />
* Threaded programs are now more stable, though still experimental.<br />
<br />
== Guest agent ==<br />
* New commands in qemu-ga let the host put CPUs online/offline with help from the guest OS (Linux only)<br />
* Low impact CVE-2013-2007 ("qemu: guest agent creates files with insecure permissions in daemon mode") is fixed.<br />
** 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 <code>0600</code> when daemonizing. Please delete your old files or change their permissions manually when upgrading.<br />
** The <code>guest-file-open</code> QMP command continues to create files with mode <code>0666</code> for compatibility reasons.<br />
<br />
== Host support ==<br />
* QEMU is now a lot faster on Windows hosts than in previous versions<br />
* libcacard has been ported to Windows.<br />
<br />
=== Known issues ===<br />
* The GTK+ backend does not compile on BSD systems (including Mac OS X). This will likely be fixed in a later stable update.</div>Lersek