https://wiki.qemu.org/api.php?action=feedcontributions&user=Dahi&feedformat=atomQEMU - User contributions [en]2024-03-29T01:39:10ZUser contributionsMediaWiki 1.39.1https://wiki.qemu.org/index.php?title=ChangeLog/9.0&diff=11653ChangeLog/9.02024-02-08T16:53:45Z<p>Dahi: /* Memory backends */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
* Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at qemu-devel@nongnu.org.<br />
* The behaviour of the '-serial none' option when used together with other '-serial' options has been corrected. Previously when '-serial none' was followed by '-serial something' the '-serial none' was effectively ignored. Now it controls the existence of the first serial port, and the following '-serial' option controls the behaviour of the second serial port; this brings it in to line with how all other cases of multiple '-serial' options work. If you have a command line that was accidentally relying on the old behaviour, you can simply delete the unnecessary '-serial none'.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* New architectural features now emulated:<br />
** FEAT_NV<br />
** FEAT_NV2<br />
<br />
* New board types:<br />
** b-l475e-iot01a : the B-L475E-IOT01A board (currently minimal support only)<br />
<br />
* Changes to existing board types:<br />
** The Freescale i.MX6 now models the cache controller and the PCIe controller<br />
** The Allwinner R40 and Bananapi boards now model the USB controllers, the AHCI/SATA controller and the watchdog timer<br />
** Raspberry Pi boards now support the SPI controller<br />
** The npcm7xx based boards now support the ethernet controllers<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* SeaBIOS-hppa version 15<br />
* Fixed 32-bit HP-UX crashes on B160L (32-bit) machine<br />
* Fixed NetBSD boot failure due to power button in page zero<br />
* Fixed NetBSD FPU detection failure<br />
* Fixed OpenBSD 7.4 boot failure<br />
* Allows usage of up to 3840 MB of memory (instead of 3 GB)<br />
* Supports the qemu ''--nodefaults'' option<br />
<br />
=== LoongArch ===<br />
<br />
==== ISA and Extensions ====<br />
<br />
==== Machines ====<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
<br />
==== ISA and Extensions ====<br />
* Add support for Zacas extension<br />
* Add amocas.[w,d,q] instructions<br />
* RVA22 profiles support<br />
* Add RVV CSRs to KVM<br />
<br />
==== Machines ====<br />
* ACPI: Enable AIA, PLIC and update RHCT<br />
* Fix the interrupts-extended property format of PLIC<br />
* Document acpi parameter of virt machine<br />
* Remove group setting of KVM AIA if the machine only has 1 socket<br />
* sifive_u: Update S-mode U-Boot image build instructions<br />
<br />
==== Fixes and Misc ====<br />
* Fix th.dcache.cval1 priviledge check<br />
* Don't allow write mstatus_vs without RVV<br />
* Fix machine IDs QOM getters<br />
* Fix KVM reg id sizes<br />
* Upgrade OpenSBI from v1.3.1 to v1.4<br />
* pmp: Ignore writes when RW=01 and MML=0<br />
* Don't adjust vscause for exceptions<br />
* Ensure mideleg is set correctly on reset<br />
<br />
=== s390x ===<br />
<br />
* Fix access register handling in the emulation of the LOAD ADDRESS EXTENDED (LAE) instruction<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
==== Xen emulation under KVM ====<br />
<br />
==== TCG ====<br />
<br />
==== Known issues ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== Hyper-V ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== UFS ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* Memory backends specified on the QEMU commandline can now be preallocated concurrently/asynchronously in some configurations, to speedup QEMU startup with preallocation on multiple memory backends: one requirement is that memory backends that are getting preallocated have a "thread-context" set.<br />
* QEMU 8.2 accidentally allowed for creation of memory backends with sizes that are not aligned to the (huge) page size. This has been fixed.<br />
<br />
=== Migration ===<br />
<br />
* Fixed migration for SUSPENDED VM, where we used to ignore the SUSPENDED state and kick off the VM even if it was suspended before the migration.<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== runtime ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== alpha ===<br />
<br />
=== arm/arm64/aarch64 ===<br />
<br />
=== LoongArch ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
== TCG ==<br />
<br />
=== Record/Replay===<br />
<br />
* fixed record/replay to avoid problems with partial chardev drains<br />
* updated replay-dump.py for current ABI<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
<br />
=== Docker Tweaks ===<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* See https://gitlab.com/qemu-project/qemu/-/milestones/11</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/9.0&diff=11652ChangeLog/9.02024-02-08T16:52:41Z<p>Dahi: /* Memory backends */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
* Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at qemu-devel@nongnu.org.<br />
* The behaviour of the '-serial none' option when used together with other '-serial' options has been corrected. Previously when '-serial none' was followed by '-serial something' the '-serial none' was effectively ignored. Now it controls the existence of the first serial port, and the following '-serial' option controls the behaviour of the second serial port; this brings it in to line with how all other cases of multiple '-serial' options work. If you have a command line that was accidentally relying on the old behaviour, you can simply delete the unnecessary '-serial none'.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* New architectural features now emulated:<br />
** FEAT_NV<br />
** FEAT_NV2<br />
<br />
* New board types:<br />
** b-l475e-iot01a : the B-L475E-IOT01A board (currently minimal support only)<br />
<br />
* Changes to existing board types:<br />
** The Freescale i.MX6 now models the cache controller and the PCIe controller<br />
** The Allwinner R40 and Bananapi boards now model the USB controllers, the AHCI/SATA controller and the watchdog timer<br />
** Raspberry Pi boards now support the SPI controller<br />
** The npcm7xx based boards now support the ethernet controllers<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* SeaBIOS-hppa version 15<br />
* Fixed 32-bit HP-UX crashes on B160L (32-bit) machine<br />
* Fixed NetBSD boot failure due to power button in page zero<br />
* Fixed NetBSD FPU detection failure<br />
* Fixed OpenBSD 7.4 boot failure<br />
* Allows usage of up to 3840 MB of memory (instead of 3 GB)<br />
* Supports the qemu ''--nodefaults'' option<br />
<br />
=== LoongArch ===<br />
<br />
==== ISA and Extensions ====<br />
<br />
==== Machines ====<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
<br />
==== ISA and Extensions ====<br />
* Add support for Zacas extension<br />
* Add amocas.[w,d,q] instructions<br />
* RVA22 profiles support<br />
* Add RVV CSRs to KVM<br />
<br />
==== Machines ====<br />
* ACPI: Enable AIA, PLIC and update RHCT<br />
* Fix the interrupts-extended property format of PLIC<br />
* Document acpi parameter of virt machine<br />
* Remove group setting of KVM AIA if the machine only has 1 socket<br />
* sifive_u: Update S-mode U-Boot image build instructions<br />
<br />
==== Fixes and Misc ====<br />
* Fix th.dcache.cval1 priviledge check<br />
* Don't allow write mstatus_vs without RVV<br />
* Fix machine IDs QOM getters<br />
* Fix KVM reg id sizes<br />
* Upgrade OpenSBI from v1.3.1 to v1.4<br />
* pmp: Ignore writes when RW=01 and MML=0<br />
* Don't adjust vscause for exceptions<br />
* Ensure mideleg is set correctly on reset<br />
<br />
=== s390x ===<br />
<br />
* Fix access register handling in the emulation of the LOAD ADDRESS EXTENDED (LAE) instruction<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
==== Xen emulation under KVM ====<br />
<br />
==== TCG ====<br />
<br />
==== Known issues ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== Hyper-V ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== UFS ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* Memory backends specified on the QEMU commandline can now be preallocated concurrently/asynchronously in some configurations, to speedup QEMU startup with preallocation on multiple memory backends: one requirement is that memory backends that are getting preallocated have a "thread-context" set.<br />
<br />
=== Migration ===<br />
<br />
* Fixed migration for SUSPENDED VM, where we used to ignore the SUSPENDED state and kick off the VM even if it was suspended before the migration.<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== runtime ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== alpha ===<br />
<br />
=== arm/arm64/aarch64 ===<br />
<br />
=== LoongArch ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
== TCG ==<br />
<br />
=== Record/Replay===<br />
<br />
* fixed record/replay to avoid problems with partial chardev drains<br />
* updated replay-dump.py for current ABI<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
<br />
=== Docker Tweaks ===<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* See https://gitlab.com/qemu-project/qemu/-/milestones/11</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/8.2&diff=11511ChangeLog/8.22023-10-17T13:25:46Z<p>Dahi: /* virtio */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
* The HAX accelerator is not supported anymore; [https://github.com/intel/haxm#status the project has been retired]. Use "whpx" or "hvf" respectively on Windows and macOS.<br />
* The old machine types pc-i440fx-1.4 to pc-i440fx-1.7 have been removed; use a newer machine type instead<br />
* In addition to <tt>-audiodev</tt> and <tt>-audio</tt>, QEMU does not create default audio backends anymore if the <tt>-nodefaults</tt> option are used on the command line.<br />
* If an audio backend is created with <tt>-audiodev</tt>, each audio client (a sound card or VNC) that wants to use it has to specify an <tt>audiodev=</tt> property. Previously, the first audiodev command line option would be used as a fallback. However <tt>-audio</tt> can now be used to configure one or more default audio backends, in lieu of the (deprecated and now removed) <tt>QEMU_AUDIO_*</tt> environment variables.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
* The Macintosh Quadra 800 (q800) emulation now can boot:<br />
** MacOS 7.1 - 8.1, with or without virtual memory enabled<br />
** A/UX 3.0.1<br />
** NetBSD 9.3<br />
** Linux (via EMILE)<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
* The following machines support the new <tt>audiodev</tt> property: integratorcp, musicpal, n800, n810, realview-eb, realview-eb-mpcore, realview-pb-a8, realview-pbx-a9, akita, borzoi, spitz, terrier, versatilepb, versatileab, vexpress-a9, vexpress-a15, xlnx-zcu102 z2<br />
* Xilinx Versal board now models the CFU/CFI<br />
* New CPU type: cortex-a710<br />
* New architectural features now emulated:<br />
** FEAT_PACQARMA3<br />
** FEAT_EPAC<br />
** FEAT_Pauth2<br />
** FEAT_FPAC<br />
** FEAT_FPACCOMBINE<br />
** FEAT_TIDCP1<br />
** FEAT_MOPS<br />
** FEAT_HBC<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* Block-TLB (BTLB) support for 32-bit PA-RISC CPUs<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* The <tt>fuloong2e</tt> machine supports the new <tt>audiodev</tt> property.<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* The <tt>pegasos2</tt> and <tt>40p</tt> machines support the new <tt>audiodev</tt> property.<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add zmmul isa string<br />
* Add smepmp isa string<br />
* Add RISC-V vector cryptographic instruction set support<br />
* Implement WARL behaviour for mcountinhibit/mcounteren<br />
* Add Zihintntl extension ISA string to DTS<br />
* Fix zfa fleq.d and fltq.d<br />
* Add RISC-V KVM AIA Support<br />
* Fix riscv,pmu DT node path in the virt machine<br />
* Update CSR bits name for svadu extension<br />
* Mark zicond non-experimental<br />
* Align the AIA model to v1.0 ratified spec<br />
* Use env_archcpu for better performance<br />
<br />
==== Machines ====<br />
* Remove 'host' CPU from TCG<br />
* riscv_htif Fixup printing on big endian hosts<br />
* Add support for the max CPU<br />
* Detect user choice in TCG<br />
* Remove RVG warning<br />
<br />
==== Fixes and Misc ====<br />
* Fix page_check_range use in fault-only-first<br />
* Fix upper/lower mtime write calculation<br />
* Make rtc variable names consistent<br />
* Use abi type for linux-user target_ucontext<br />
* Fix satp_mode_finalize() when satp_mode.supported = 0<br />
* Fix non-KVM --enable-debug build<br />
* Add new extensions to hwprobe<br />
* Use accelerated helper for AES64KS1I<br />
* Allocate itrigger timers only once<br />
* Respect mseccfg.RLB for pmpaddrX changes<br />
* Don't read the CSR in riscv_csrrw_do64<br />
* Clear CSR values at reset and sync MPSTATE with host<br />
* Fix the typo of inverted order of pmpaddr13 and pmpaddr14<br />
* Replace GDB exit calls with proper shutdown<br />
* Support KVM_GET_REG_LIST<br />
* Deprecate capital 'Z' CPU properties<br />
* Fix vfwmaccbf16.vf<br />
<br />
=== s390x ===<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
* Added TC37x CPU that implements ISA v1.6.2<br />
* Added CRCN, FTOU, FTOHP, and HPTOF instructions<br />
* Fixed RCPW/RRPW_INSERT instructions for width=0<br />
* Fixed RCRR_INSERT using the wrong destination register<br />
* Fixed FTOUZ being only available from ISA v1.3.1 upwards<br />
<br />
=== x86 ===<br />
==== TCG ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
* Parallels Format Driver<br />
** Improved 'qemu-img check' facility<br />
*** Recover from broken data_off in the header<br />
*** Drop clusters outside of the image file<br />
*** De-duplicate clusters located on the same offset in the host file<br />
** Introduced ability to execute check automatically (if disk image is opened in read/write mode) if corruption is detected by open<br />
** Cluster allocation is now based on the cluster used bitmap (clusters could be allocated in holes inside image file)<br />
** Minimal DISCARD & WRITE_ZEROES support<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<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 />
* virtio-mem now supports to dynamically consume multiple memslots instead of statically a single big one. The feature can be enabled using "dynamic-memslots=on", which can severely reduce KVM memory slot metadata overhead with large virtio-mem devices that only expose a small amount of memory to the VM. Note that the feature is incompatible with vhost devices that provide less than 509 memslots, like most vhost-user devices.<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
* fixes cases where wrong threads were reported to gdb<br />
<br />
=== TCG Plugins ===<br />
* fix bug in reporting too many instructions to qemu_plugin_tb_n_insns()<br />
* fix locking on execlog<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* memory-backend-file now supports the "rom" parameter. "share=off,readonly=off,rom=on" can be used for VM-templating with R/O files: open the file R/O, but create writable RAM instead of Read Only Memory (ROM).<br />
* "VM templating" documentation was added<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== alpha ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== arm/arm64/aarch64 ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== LoongArch ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
== TCG backends ==<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
* Coding style has been updated to allow loop variables<br />
<br />
=== Build Dependencies ===<br />
* Building QEMU now requires Python 3.8. As a consequence, building on Debian 10 is not supported anymore (unless a newer version of Python is installed by other means).<br />
* Building QEMU now uses the tomli library if Python is older than version 3.11. However, version 2.0.1 is bundled in case tomli is not installed on the host.<br />
* The libfdt library is no longer bundled with QEMU. However, if QEMU is configured with --enable-download and the library is absent, then it will be downloaded and built together if any emulators need it.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* ccache has been enabled for CI builds<br />
* container backend is now selected by configure script<br />
<br />
== Known issues ==<br />
<br />
* See [[Planning/8.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/8.2&diff=11442ChangeLog/8.22023-09-20T07:39:28Z<p>Dahi: /* Memory backends */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* Xilinx Versal board now models the CFU/CFI<br />
* New CPU type: cortex-a710<br />
* New architectural features now emulated:<br />
** FEAT_PACQARMA3<br />
** FEAT_EPAC<br />
** FEAT_Pauth2<br />
** FEAT_FPAC<br />
** FEAT_FPACCOMBINE<br />
** FEAT_TIDCP1<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add zmmul isa string<br />
* Add smepmp isa string<br />
* Add RISC-V vector cryptographic instruction set support<br />
* Implement WARL behaviour for mcountinhibit/mcounteren<br />
* Add Zihintntl extension ISA string to DTS<br />
* Fix zfa fleq.d and fltq.d<br />
* Add RISC-V KVM AIA Support<br />
* Fix riscv,pmu DT node path in the virt machine<br />
* Update CSR bits name for svadu extension<br />
* Mark zicond non-experimental<br />
* Align the AIA model to v1.0 ratified spec<br />
<br />
==== Machines ====<br />
* Remove 'host' CPU from TCG<br />
* riscv_htif Fixup printing on big endian hosts<br />
<br />
==== Fixes and Misc ====<br />
* Fix page_check_range use in fault-only-first<br />
* Fix upper/lower mtime write calculation<br />
* Make rtc variable names consistent<br />
* Use abi type for linux-user target_ucontext<br />
* Fix satp_mode_finalize() when satp_mode.supported = 0<br />
* Fix non-KVM --enable-debug build<br />
* Add new extensions to hwprobe<br />
* Use accelerated helper for AES64KS1I<br />
* Allocate itrigger timers only once<br />
* Respect mseccfg.RLB for pmpaddrX changes<br />
* Don't read the CSR in riscv_csrrw_do64<br />
<br />
=== s390x ===<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
==== TCG ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
* Parallels Format Driver<br />
** Improved 'qemu-img check' facility<br />
*** Recover from broken data_off in the header<br />
*** Drop clusters outside of the image file<br />
*** De-duplicate clusters located on the same offset in the host file<br />
** Introduced ability to execute check automatically (if disk image is opened in read/write mode) if corruption is detected by open<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<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 />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
* fixes cases where wrong threads were reported to gdb<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* memory-backend-file now supports the "rom" parameter. "share=off,readonly=off,rom=on" can be used for VM-templating with R/O files: open the file R/O, but create writable RAM instead of Read Only Memory (ROM).<br />
* "VM templating" documentation was added<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== armhf ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
<br />
== TCG backends ==<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
* Coding style has been updated to allow loop variables<br />
<br />
=== Build Dependencies ===<br />
* Building QEMU now requires Python 3.8. As a consequence, building on Debian 10 is not supported anymore (unless a newer version of Python is installed by other means).<br />
* Building QEMU now uses the tomli library if Python is older than version 3.11. However, version 2.0.1 is bundled in case tomli is not installed on the host.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* ccache has been enabled for CI builds<br />
<br />
== Known issues ==<br />
<br />
* See [[Planning/8.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/8.1&diff=11400ChangeLog/8.12023-07-12T19:13:02Z<p>Dahi: /* virtio */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
* The "-singlestep" command line option is deprecated, as it was very misleadingly named. Its replacement is "-one-insn-per-tb" (for the user-mode emulator) or "-accel one-insn-per-tb=on" (for the system-mode emulator)<br />
* The "-fsdev proxy" and "-virtfs proxy" command line options are deprecated ([https://github.com/qemu/qemu/commit/71d72ececa086114df80fe4cc04d701b59002eb2 commit] / [https://qemu-project.gitlab.io/qemu/about/deprecated.html#fsdev-proxy-and-virtfs-proxy-since-8-1 notes]).<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* KVM VMs on a host which supports MTE (the Memory Tagging Extension) can now use MTE in the guest<br />
* Pointer-authentication information is now reported to the gdbstub (a GDB 13 or later will produce better backtraces when pauth is in use by the guest)<br />
* Orangepi-PC, Cubieboard: Add Allwinner WDT watchdog emulation<br />
* mcimxd7-sabre, mcimx6ul-evk: The second ethernet controller PHY is now usable<br />
* fsl-imx6: The SNVS is now implemented, sufficient for the guest to be able to shut down the machine<br />
* The SMMUv3 model can now emulate stage-2 translations (but only as an alternative to, not together with, stage-1)<br />
* Debugging via the gdbstub is now supported when using the hvf acceleration on macos hosts<br />
* xlnx-versal board now emulates a CANFD controller<br />
* sbsa-ref now provides the GIC ITS<br />
* New board model: bpim2u (Banana Pi BPI-M2 Ultra)<br />
* TCG plugin memory instrumentation now catches all SVE accesses<br />
* New CPU type: neoverse-v1 (Cortex Neoverse-V1)<br />
* AES instructions can use AES acceleration on the host processor<br />
* New architectural features now emulated:<br />
** FEAT_PAN3 (Support for SCTLR_ELx.EPAN)<br />
** FEAT_LSE2 (Large System Extensions v2)<br />
** FEAT_RME (Realm Management Extensions) -- support is currently experimental only<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
* New SeaBIOS-hppa version 8 firmware<br />
* Fixes boot failure of Debian-12 install CD-ROM (ramdisc could not be loaded)<br />
* Fixes operating system boot and reboot issues on HP-UX and Linux with SMP installations<br />
* Enables PSW-Q bit by default (for MPE-UX operating system)<br />
* Show QEMU version in firmware boot menu<br />
* Adds EXIT menu entry to firmware boot menu<br />
* Enhances PDC CHASSIS codes debug possibilty<br />
<br />
=== LoongArch ===<br />
* Implement LSX extension<br />
* Various fixes<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* Support for emulation of MXU instructions<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
* Allow FPCSR special purpose register to be accessed in user mode<br />
* Configure FPU to detecting tininess before rounding to align QEMU with architecture specification<br />
<br />
=== PowerPC ===<br />
* TCG SMT support, allowing pseries and powernv to run with up to 8 threads per core<br />
* Fix timebase synchronisation improving stability of SMP machines that update TB (e.g., powernv running KVM)<br />
* Implement PMU interrupt for POWER CPUs, enabling perf to sample cycle counter<br />
* ppc440 cleanups<br />
* Power9 DD2.2 CPU model<br />
* Use SMT4 small core PVRs for Power9/Power10<br />
* XIVE2 model improvements<br />
* Decrimenter, larx/stdx, doorbell, PMU correctness improvements<br />
* GDB debugging fixes<br />
* Power10 xscom models<br />
* Support for irq monitor command<br />
* AES instructions can use AES acceleration on the host processor<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Support subsets of code size reduction extension<br />
* A large collection of mstatus sum changes and cleanups<br />
* Zero init APLIC internal state<br />
* Implement query-cpu-definitions<br />
* Fix Guest Physical Address Translation<br />
* Make sure an exception is raised if a pte is malformed<br />
* Move zc* out of the experimental properties<br />
* Mask the implicitly enabled extensions in isa_string based on priv version<br />
* Updates and improvements for Smstateen<br />
* Support disas for Zcm* extensions<br />
* Support disas for Z*inx extensions<br />
* Add vector registers to log<br />
* AES instructions can use AES acceleration on the host processor<br />
* Add disassembly support for XVentanaCondOps<br />
* Add disassembly support for XThead* instructions<br />
* Add syscall riscv_hwprobe<br />
* Add support for BF16 extensions<br />
* Add support for the Zfa extension<br />
<br />
==== Machines ====<br />
* Add signature dump function for spike to run ACT tests<br />
* Add Ventana's Veyron V1 CPU<br />
* Assume M-mode FW in pflash0 only when "-bios none"<br />
* Support using pflash via -blockdev option<br />
* Fix veyron-v1 CPU properties<br />
* opensbi: Upgrade from v1.2 to v1.3<br />
* Support the watchdog timer of HiFive 1 rev b<br />
* Add RVV registers to log<br />
<br />
==== Fixes and Misc ====<br />
* Fix invalid riscv,event-to-mhpmcounters entry<br />
* Fix itrigger when icount is used<br />
* Fix mstatus.MPP related support<br />
* Fix the H extension TVM trap<br />
* Restore the predicate() NULL check behavior<br />
* Skip Vector set tail when vta is zero<br />
* Fixup PMP TLB cacheing errors<br />
* Writing to pmpaddr and MML/MMWP correctly triggers TLB flushes<br />
* Fixup PMP bypass checks<br />
* Deny access if access is partially inside a PMP entry<br />
* Fix QEMU crash when NUMA nodes exceed available CPUs<br />
* Fix pointer mask transformation for vector address<br />
* Remove the check for extra Vector tail elements<br />
* Smepmp: Return error when access permission not allowed in PMP<br />
* Fixes for smsiaddrcfg and smsiaddrcfgh in AIA<br />
* Use xl instead of mxl for disassemble<br />
* Fix mstatus related problems<br />
* Fix the xlen for data address when MPRV=1<br />
* Only build qemu-system-riscv$$ on rv$$ host<br />
* Generate devicetree only after machine initialization is complete<br />
* virt: Convert fdt_load_addr to uint64_t<br />
* KVM: fixes and enhancements<br />
<br />
=== s390x ===<br />
<br />
* Fixed emulation of LDER, LCBB, LOCFHR, MXDB, MXDBR, EPSW, MDEB, MDEBR, MVCRL and LRA instructions<br />
* Fixed CPU address returned by STIDP<br />
* Fixed a problem with the EXECUTE instruction and relative branches<br />
* Make the s390-ccw bios compilable with Clang in conjunction with binutils 2.40<br />
<br />
=== SPARC ===<br />
<br />
* Fix block device error when trying to boot niagara machine<br />
* Allow keyboard language DIP switches to be set via the -global escc.chnA-sunkbd-layout option<br />
* Update target/sparc to use tcg_gen_lookup_and_goto_ptr() for improved performance<br />
<br />
=== Tricore ===<br />
* Handles PCXI and ICR registers correctly for ISA version 1.6.1 upwards<br />
* Added POPCNT.W, LHA, CRC32L.W, CRC32.B, SHUFFLE, SYSCALL, and DISABLE instructions<br />
* Implemented privilege levels<br />
* Introduced TC37x CPU that supports ISA v1.6.2<br />
* Fix out of bounds index for instructions using 64 register pairs<br />
<br />
=== x86 ===<br />
* New CPU model GraniteRapids.<br />
* Default to SMBIOS 3.0 information<br />
==== TCG ====<br />
* The following features are now exposed by TCG (but were already implemented): RDSEED, XSAVEERPTR, 3DNOWPREFETCH, WBNOINVD<br />
* RDPID is now implemented by TCG<br />
* SYSCALL is now implemented by TCG in 32-bit emulators (only for AMD processors; Intel processors hide the feature unless the processor is in long mode).<br />
* AES instructions can use AES acceleration on the host processor<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
* add "virtio-multitouch-pci", a multitouch-capable input device<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
* Improved e1000e and igb emulation<br />
* New CANFD controller emulation, Xilinx Versal<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
* New QMP commands to inject CXL General Media events, DRAM events and Memory Module events<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
* Added support for the sun40i-a64 SoC<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
* Added TPM TIS I2C device model<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
* VFIO migration is not experimental anymore<br />
* Support for transferring VFIO device data while the VM is still running<br />
<br />
==== virtio ====<br />
* asymmetric crypto support for cryptodev-vhost-user<br />
* virtio-blk: zoned device emulation<br />
* virtio-mem: device unplug support (once a device no longer provides any memory: size == 0)<br />
* virtio-mem: support for "x-ignore-shared" migration<br />
<br />
==== vDPA ====<br />
* shadow virtqueue offload support for vhost-vdpa<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* [https://github.com/qemu/qemu/commit/f6b0de53fb87ddefed348a39284c8e2f28dc4eda Security fix] for CVE-2023-2861.<br />
* [https://github.com/qemu/qemu/commit/71d72ececa086114df80fe4cc04d701b59002eb2 'Proxy' backend is deprecated].<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
* new PipeWire audio backend (<tt>-audiodev pipewire</tt>)<br />
<br />
=== Character devices ===<br />
<br />
* It's now possible to specify the input independently from the output with ''-chardev file'' (e.g. ''-chardev file,id=repro,path=/dev/null,input-path=input.txt'')<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* gtk: enable multi-touch events<br />
* sdl: various keyboard grab fixes<br />
* dbus: add multi-touch and win32 support<br />
<br />
=== GDBStub ===<br />
* debugging linux-user guests now report correct pid<br />
* now support "info proc" and the host IO features<br />
* properly respond to "b" packet when reverse debugging<br />
<br />
=== TCG Plugins ===<br />
* cputlb API change now forces slow path for all memory helpers under instrumentation<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
* The final parts of per-vcpu trace events where removed. Those looking to monitor TCG code should look at https://qemu.readthedocs.io/en/latest/devel/tcg-plugins.html<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
* Command-line parsing of sizes using a fraction of a scale (such as "1.5M") has been improved: it is now possible to write ".5G" as a synonym for "512M", and no longer possible to cause qemu to read out of bounds on garbage input such as "9.999e999".<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
<br />
* Fixed fcntl() and fcntl64() to return O_LARGEFILE for 32-bit targets<br />
* Added correct checks for accept4(SOCK_NONBLOCK) syscall flags<br />
* Fixed accept4(SOCK_NONBLOCK) syscall for hppa, mips and alpha targets<br />
* Enchanced strace output for pread64() and pwrite64()<br />
* QEMU can emulate /proc/self/smaps<br />
* Several gdbstub bugfixes and improvements<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
=== s390 ===<br />
* Support for ELF hwcaps<br />
<br />
=== x86 ===<br />
* On Linux, qemu-i386 will run 32-bit programs as if they were ran by a 64-bit kernel, if the chosen CPU model includes the LM feature. This includes the ability to execute system calls using the SYSCALL instruction<br />
* The SYSCALL instruction can also be used with qemu-i386 on 32-bit AMD CPU models<br />
* User-mode emulation will not warn about features that TCG does not implement, if those features are not visible to user mode (e.g. PCID)<br />
* The newly-implemented RDPID instruction will return the current CPU and NUMA node ids<br />
<br />
=== Xtensa ===<br />
<br />
== TCG backends ==<br />
* Generated TCG code respects guest memory ordering even on weakly-ordered machines, allowing parallel emulation of e.g. x86 on ARM<br />
<br />
=== RISC-V ===<br />
<br />
* Support Zba, Zbb, and Zicond standard extensions.<br />
<br />
== Guest agent ==<br />
* The guest-exec command supports values "stdout", "stderr", "merged" values for the capture-output parameter. The <tt>true</tt> and <tt>false</tt> values for the parameter can also be written as "separated" and "none" respectively.<br />
* The guest-get-fsinfo command can return "usb" as the bus type too.<br />
* Add logging into VSS part (Windows only).<br />
* Add new option "allow-rpcs". The "allow-rpcs" option accepts a comma-separated list of RPCs to enable. This option is opposite to "block-rpcs".<br />
* Fix suspend on Linux guests without systemd.<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
* The <tt>--meson</tt> and <tt>--sphinx-build</tt> options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with <tt>--python</tt> or the <tt>$PYTHON</tt> environment variable; in order to use a host installation of Meson or Sphinx, the corresponding distribution packages (including metadata) will have to be installed in the <tt>site-packages</tt> directory of that Python interpreter.<br />
* Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.<br />
* A new option <tt>--enable-download</tt> will direct configure to find some missing Python build dependencies. For now this applies to sphinx (downloaded from PyPI) and libslirp (which is then built as a meson subproject). Only required and explicitly enabled dependencies (e.g. only for <tt>--enable-docs</tt> in the case of Sphinx) are downloaded.<br />
** The use of <tt>subprojects/wrapdb.json</tt> (downloaded by "meson wrap update-db") isn't supported yet.<br />
* Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).<br />
* new pipewire audio backend requires libpipewire (currently >= 0.3.60)<br />
* Xen versions below 4.7.1 are not supported anymore.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* riscv-cross image now using lcitool<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/8.1]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/8.0&diff=11283ChangeLog/8.02023-04-17T07:39:58Z<p>Dahi: </p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
*Size suffixes such as 'k' or 'M' are now allowed only when the base is written in decimal. For example, "0x20M" should be written as either "32M" or "0x2000000".<br />
* <tt>-chardev tty</tt> and <tt>-chardev parport</tt> have been removed; they should be replaced respectively by <tt>-chardev serial</tt> and <tt>-chardev parallel</tt>.<br />
* <tt>-spice password=...</tt> is insecure and should be replaced by the <tt>password-secret</tt> option.<br />
* <tt>-M kernel-irqchip=off</tt> is not supported anymore on KVM if the CPU model includes a local APIC.<br />
* Support for MIPS "trap-and-emulate KVM" is not supported anymore. It was removed from Linux in 2021.<br />
* The "sga" device, which provided a way to send BIOS output to the serial console, has been removed; SeaBIOS 1.11.0 and newer supports this feature natively when QEMU is started with the option <tt>-M graphics=off</tt> (or <tt>-nographic</tt> which implies it).<br />
* The <tt>virtiofsd</tt> tool has been superseded by a newer implementation at https://gitlab.com/virtio-fs/virtiofsd, which is stable and has a similar feature set to the daemon that was included in QEMU.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
* The <tt>--enable-gprof</tt> configure option is deprecated. It is suggested to use a non-instrumenting profiler instead.<br />
* The <tt>-no-hpet</tt> and <tt>-no-acpi</tt> options are deprecated. Use <tt>-M hpet=off</tt> and <tt>-M acpi=off</tt> instead.<br />
* The HAXM project has been retired, and <tt>-accel hax</tt> has therefore been deprecated.<br />
* System emulation on 32-bit x86 and ARM hosts has been deprecated. The QEMU project no longer considers 32-bit x86 and ARM support for system emulation to be an effective use of its limited resources, and thus intends to discontinue. User mode emulation continues to be supported on 32-bit hosts.<br />
* Specifying the iSCSI password in plain text on the command line using the <tt>password</tt> option is insecure and has been deprecated.<br />
<br />
=== 68k ===<br />
<br />
* Fix FPSR quotient byte for fmod and frem instructions<br />
* Fix 'bkpt' instruction in softmmu mode to generate an illegal exception<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The following CPU architecture features are now emulated: <br />
** FEAT_EVT<br />
** FEAT_FGT<br />
** AArch32 ARMv8-R support<br />
* New emulated CPU types: <br />
** Cortex-A55 CPU<br />
** Cortex-R52 CPU<br />
* The GICv3 can now be emulated under hvf acceleration<br />
* M-profile system registers are now exposed to the gdbstub<br />
* Linux/arm64 EFI zboot format kernel images can now be booted with -kernel<br />
<br />
==== Machines ====<br />
<br />
* The cubieboard machine is now able to boot directly from an SD card image.<br />
* orangepi now implements some previously missing i2c controllers<br />
* New machine types:<br />
** ``olimex-stm32-h405`` -- Olimex STM32 H405 board with STM32F405RGT6 microcontroller<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
* updated the test compiler to version 16.0<br />
<br />
=== HPPA ===<br />
* Implemented fid instruction (Floating-Point Identify)<br />
* Create illegal instruction when executing 64-bit load/save on 32-bit emulation<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add smstateen support<br />
* Support native debug icount trigger<br />
* Support cache-related PMU events in virtual mode<br />
* Add Zawrs ISA extension support<br />
* Add support for the T-Head vendor extensions<br />
* Experimantal support for writable misa.<br />
* Support for Svadu extension.<br />
* Support for the Zicond extension.<br />
* Support for the Zicbiom, ZCicboz, and Zicbop extensions.<br />
* Support for setting the virtual address width (ie, sv39/sv48/sv57) on the command line.<br />
<br />
==== Machines ====<br />
* Bump the OpenTitan supported version<br />
* Add some missing PolarFire SoC io regions<br />
* riscv_htif: Support console output via proxy syscall<br />
* Update opentitan IRQs<br />
* OpenSBI has been updated to version 1.2, see [https://github.com/riscv-software-src/opensbi/releases/tag/v1.2 release notes] for more details.<br />
* Support for ACPI on RISC-V.<br />
<br />
==== Fixes and Misc ====<br />
* Fix PMP propagation for tlb<br />
* Remove the redundant ipi-id property in the virt machine<br />
* Fix mret exception cause when no pmp rule is configured<br />
* Fix bug where disabling compressed instructions would crash QEMU<br />
* Cleanup firmware and device tree loading<br />
* Fix elen check when using vector extensions<br />
* Ensure we always follow MISA parsing<br />
* Fix up masking of vsip/vsie accesses<br />
* Trap on writes to stimecmp from VS when hvictl.VTI=1<br />
* Update disas for xnor/orn/andn and slli.uw<br />
* Fix rom code when Zicsr is disabled<br />
* A collection of fixes for virtulisation<br />
* Set tval for triggered watchpoints<br />
* A fix for virtual instr exception<br />
* Fix ctzw behavior<br />
* Fix SBI getchar handler for KVM<br />
* A fix for PMP matching to avoid incorrectly appling the default permissions on PMP permission violations.<br />
* Fixes for the vector slide instructions to avoid truncating 64-bit values (such as doubles) on 32-bit targets.<br />
* Fixes to gdbstub, CSR accesses, dependencies between the various floating-point exceptions, and XTheadMemPair.<br />
* Fix slli_uw decoding<br />
* Fix incorrect register name in disassembler for fmv,fabs,fneg instructions<br />
<br />
=== s390x ===<br />
<br />
* Improved zPCI passthrough device handling<br />
* Fixed emulation of MVCP, MVCS, CHRL and CGHRL instructions<br />
* Support for asynchronous teardown of memory of secure KVM guests during reboot<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
* Fix OPC1_16_SRO_LD_H translation<br />
* Fix OPC2_32_BO_LD_BU_PREINC translation<br />
* Fix OPC2_32_RRRR_DEXTR/RRPW_DEXTR translation<br />
* Fix OPC2_32_RCRW_INSERT translation<br />
* Fix OPC2_32_RCRW_IMASK translation<br />
<br />
=== x86 ===<br />
<br />
* Add support for Xen guests under KVM with Linux v5.12+. See the [https://qemu-project.gitlab.io/qemu/system/i386/xen.html "Xen HVM guest support"] page for details.<br />
* New CPU model "SapphireRapids".<br />
* TCG exposes CPUID flags FSRM, FZRM, FSRS, FSRC. These do not correspond to any new instructions; they only direct software to use string operations even if the length is zero or short.<br />
* Fixed CPU hotplug when used with TCG accel (it was broken since 5.1.0) (dab30fbef3896)<br />
* Fixed broken SHPC hotplug on 'pc' based machines (since v5.2.0) (f40e6a4cc10)<br />
* Extend 'acpi-index' from only hotpluggable devices in ACPI PCI hotplug mode to non-hotpluggable devices as well<br />
** new acpi-index supported configurations:<br />
*** devices attached to functions other than 0 (aka multifunction support) as long as slot they are plugged in is not hotpluggable<br />
*** 'pc' machine<br />
**** devices attached directly to hostbridge when hotplug on it disabled '-global PIIX4_PM.acpi-root-pci-hotplug = off'<br />
**** devices attached to non-hotpluggable bridges when '-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support = on | off'<br />
*** 'q35' machine<br />
**** devices attached directly to hostbridge (when '-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support = on | off')<br />
**** devices attached to non-hotpluggable bridges/root-ports (when '-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support = on | off')<br />
** not supported yet PXB and hierarchies hanging from it<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
* New device "ide-cf" emulating a CompactFlash card.<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
* The ps2 keyboard emulation of Korean Hanguel / Hanja keys is fixed to avoid the incorrect key release event<br />
* Support for the F13 -> F24 keys is added<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
* igb device emulation<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
* Experimental migration support has been updated to the v2 VFIO migration protocol, v1 has been removed.<br />
<br />
==== virtio ====<br />
* virtio-mem now fully supports combining preallocation with migration. Preallocation is used with fd-based memory, such as hugetlb or shmem. For example, when the migration destination doesn't have sufficient hugetlb pages available, QEMU will now fail with an error instead of crashing with SIGBUS during the incoming migration.<br />
<br />
==== vDPA ====<br />
* Support live migration of vhost-vdpa net devices without CVQ, with no need of x-svq.<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
The old C virtiofsd has been removed, use the new [https://gitlab.com/virtio-fs/virtiofsd Rust implementation] instead.<br />
<br />
==== Semihosting ====<br />
* semihosting now has some documentation in the manual<br />
* semihosting only supports O_BINARY mode for file operations<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
A flaw in handling cached data when reading from a TLS channel has been fixed. This could affect TLS when used with character devices in particular where it is common to read less than one TLS packet of data at a time.<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
The deprecated 'password' option for SPICE is removed. Applications should use 'password-secret' instead, together with '-object secret'.<br />
<br />
=== GDBStub ===<br />
* removed cpu/target dependencies to only compile once<br />
<br />
=== TCG Plugins ===<br />
* some deadlocks cases where fixed when using plugins<br />
* fixed some cases where memory callbacks were not properly cleared<br />
* add some missing API docs<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
* The 'get-win32-socket' command was added to allow importing sockets from other processes (the socket can then be used with 'add_client').<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
* qemu-nbd and other places where qemu can serve as an NBD server are now more efficient over TCP sockets, particularly when TLS is enabled.<br />
<br />
=== Block device backends and tools ===<br />
<br />
* The iscsi driver 'password' option is deprecated, in favour of 'password-secret' which is to be used in combination with '--object secret'<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
* Add support for FDPIC executables and shared libraries.<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
* Add USB bus type support for guest-get-fsinfo in Windows<br />
* Add initial OpenBSD and NetBSD support<br />
* Add logging to Windows event log<br />
* Fix build with Glib version > 2.73.2 (Windows)<br />
* Add ability to specify VSS backup type (Windows FS freeze) <br />
* Fix CVE-2023-0664 in VSS installation (Windows)<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
* Perl is not necessary anymore to build QEMU, though it remains necessary in order to build developer documentation.<br />
* This will be the last version supporting Python 3.6. Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).<br />
* QEMU will try much harder to use a single Python interpreter for everything including running Meson and sphinx. As a result, there may be more circumstances in which QEMU uses the bundled copy of Meson. These include when Python points to a virtual environment and when there is a $PYTHON environment variable. The implementation of this change is still incomplete, with more improvements to come in terms of robustness.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* we have started deprecating docker.py and directly call docker/podman to build most images now<br />
* some longer running avocado tests have been disabled for GITLAB_CI (tuxrun_baselines does a fairly comprehensive job across most architectures now)<br />
* more of the full-fat fedora boot tests have been converted to faster more directed test<br />
* there is now a basic analysis script for comparing json coverage reports<br />
<br />
== Known issues ==<br />
<br />
* In this release we don't recommend configuring with --enable-qom-cast-debug -- this will trigger an otherwise harmless assertion failure in code for the pxb-cxl device (which will also appear during 'make check' if you configured with this option).<br />
* see [[Planning/8.0]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/7.2&diff=11040ChangeLog/7.22022-10-31T13:14:44Z<p>Dahi: /* Memory backends */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
==== Removal of the "slirp" submodule (affects "-netdev user") ====<br />
<br />
The "slirp" submodule / code (which is the code behind "-netdev user" / "-nic user") has been removed from the QEMU source tree, so you now need to install your distributions libslirp development package before compiling QEMU to get the user-mode networking feature included again. For example, if you see an error message like this:<br />
<br />
<code>Parameter 'type' expects a netdev backend type</code><br />
<br />
... this might be caused by the missing "user" mode backend. In that case, please install libslirp first ("<code>dnf install libslirp-devel</code>" on Fedora and "<code>apt-get install libslirp-dev</code>" on Debian for example), recompile your QEMU with <code>--enable-slirp</code>, then try again.<br />
<br />
==== Semihosting calls from userspace ====<br />
<br />
For some target architectures (arm, m68k, mips, nios2, riscv, xtensa) QEMU supports a "semihosting" style ABI where guest code can make calls to directly print messages, read and write host files, and so on. Handling of when this is enabled in system emulation has been made consistent across target architectures. By default it is not enabled; if enabled via the commandline "-semihosting" or "-semihosting-config enable=on" then it is only permitted from non-userspace guest code; if the new-in-7.2 "-semihosting-config userspace=on" option is given then it is also permitted from guest userspace. For some target architectures this is a change in behaviour: mips, nios2 and xtensa previously allowed userspace access by default, and riscv allowed all access by default. If you were using semihosting on these targets and relying on that previous default behaviour, you need to update your commandline to explicitly enable semihosting to the desired level.<br />
<br />
==== Other removed features ====<br />
<br />
* The <tt>-watchdog</tt> option has been removed, use <tt>-device</tt> instead.<br />
* The PPC ''taihu'' machine has been removed, use ''ref405ep'' instead.<br />
<br />
=== New deprecated options and features ===<br />
* Big endian 32-bit MIPS hosts are now deprecated due to lack of CI coverage.<br />
* The "--blacklist" command line option for the QEMU guest agent has been renamed to "--block-rpcs". The old name is still supported for now, but will be removed in the future; "-b" can be used on old and new versions alike.<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The following CPU architecture features are now emulated:<br />
** FEAT_ETS (Enhanced Translation Synchronization)<br />
** FEAT_PMUv3p5 (PMU Extensions v3.5)<br />
** FEAT_GTG (Guest translation granule size)<br />
** FEAT_HAFDBS (Hardware management of the access flag and dirty bit state)<br />
** FEAT_E0PD (Preventing EL0 access to halves of address maps)<br />
* New emulated CPU types:<br />
** Cortex-A35<br />
<br />
==== Machines ====<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* deprecated 32 bit big endian host<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
* Stability improvements<br />
* Performance improvements by supporting MTTCG<br />
* New '''virt''' platform is added to assist with CI and device testing<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Update [m|h]tinst CSR in interrupt handling<br />
* Force disable extensions if priv spec version does not match<br />
* fix shifts shamt value for rv128c<br />
* move zmmul out of the experimental<br />
* Add checks for supported extension combinations<br />
* Fix typo and restore Pointer Masking functionality for RISC-V<br />
* Add mask agnostic behaviour (rvv_ma_all_1s) for vector extension<br />
* Add Zihintpause support<br />
* Add xicondops in ISA entry<br />
* Use official extension names for AIA CSRs<br />
* Fix the CSR check for cycle{h}, instret{h}, time{h}, hpmcounter3-31{h}<br />
* Improvements to the RISC-V debugger spec<br />
* Add disas support for vector instructions<br />
<br />
==== Machines ====<br />
* virt: pass random seed to fdt<br />
* opentitan: bump opentitan version<br />
* virt machine device tree improvements<br />
* Allow setting the resetvec for the OpenTitan machine<br />
* Enable booting S-mode firmware from pflash on virt machine<br />
<br />
==== Fixes and Misc ====<br />
* Upgrade OpenSBI to v1.1<br />
* microchip_pfsoc: fix kernel panics due to missing peripherals<br />
* Remove additional priv version check for mcountinhibit<br />
* Fixup register addresses for Ibex SPI<br />
* Cleanup the RISC-V virt machine documentation<br />
* Remove fixed numbering from GDB xml feature files<br />
* Priority level fixes for PLIC<br />
* Fixup TLB size calculation when using PMP<br />
<br />
=== s390x ===<br />
<br />
* Fix emulation of LZRF instruction<br />
* Implement Message-Security-Assist Extension 5 (random number generation via PRNO instruction)<br />
* Implement SHA-512 via KIMD/KLMD instructions<br />
* Enhanced zPCI interpretation support for KVM guests<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
* Support for passing a random seed to the Linux kernel when booted with -kernel<br />
* Support for the MSR_CORE_THREAD_COUNT MSR<br />
==== TCG ====<br />
* Performance improvements in full-system emulation<br />
* Fixes in SSE implementation<br />
* TCG support for AVX, AVX2, F16C, FMA3 and VAES instructions<br />
<br />
==== KVM ====<br />
* Support for the "notify vmexit" mechanism, preventing processor bugs from hanging the whole system, through the ''-accel kvm,notify-vmexit='' and ''-accel kvm,notify-window='' options<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
===== Controllers =====<br />
<br />
===== Devices =====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
* Fixed bug that could cause a stack or heap overflow with the emulated "tulip" NIC (CVE-2022-2962)<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
* Support for setting CD-ROM block size using the physical-block-size property of the scsi-cd device.<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 />
* Massive general [https://github.com/qemu/qemu/commit/f5265c8f917ea8c71a30e549b7e3017c1038db63 performance improvement] somewhere between factor 6 .. 12.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* UNIX socket support on Windows has been added<br />
<br />
=== Crypto subsystem ===<br />
<br />
* LUKS block device headers are validated more strictly<br />
* Errors are correctly reported when failing to load PSK credentials on clients<br />
* Creating LUKS images is supported on macOS<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* On macOS systems, the same QEMU binary can include both the Cocoa user interface and the SDL or GTK+ user interfaces.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
* When preallocating memory provided by a memory backend, it is now possible to specify the host CPUs (or alternatively the host nodes) to run the preallocation on via a user-creatable "thread-context" object. This allows for NUMA-aware preallocation, which can speed-up preallocation (and thereby VM creation time) significantly.<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
* The "slirp" submodule has been removed from the QEMU source tree. Use libslirp from your OS distribution instead.<br />
<br />
=== Block device backends and tools ===<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
Semihosting calls were generally not permitted for userspace guest code in system emulation. This can now be enabled with the "-semihosting-config userspace=on" option. Note that the usual remarks about semihosting apply -- because it permits direct guest access to the host filesystem, it should only be used with trusted guest binaries.<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
* Dump failing executable on CPU exception<br />
* support for system calls pidfd_open(), pidfd_send_signal() and pidfd_getfd()<br />
* support for FUTEX_WAKE_BITSET and PI futexes<br />
* support for madvise(MADV_DONTNEED) on file mappings<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
* Increased guest stack to 80MB<br />
* Fix signal handling<br />
* Add vDSO emulation and thus avoid an executable stack<br />
* Changed guest memory layout like on real hppa kernel<br />
<br />
=== x86 ===<br />
<br />
* The qemu-i386 and qemu-x86_64 binaries now default to the 'max' CPU model instead of 'qemu32' / 'qemu64'<br />
* Support for saving/restoring SSE registers in signal frames in qemu-i386 (when FXSR is set in CPUID)<br />
* Support for saving/restoring XSAVE state in signal frames (when XSAVE is set in CPUID)<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
* Python 3.7 or newer is now required.<br />
<br />
=== GIT submodules ===<br />
* The libslirp library is not included in QEMU anymore. The development packages for libslirp must be installed in the system to build QEMU with user-mode networking support. <!-- As of version 7.2, QEMU will fail to build without libslirp unless <tt>--disable-libslirp</tt> is passed explicitly to the configure script. This may change in the future --><br />
<br />
=== Container Based Builds ===<br />
* All containers are now "flat" containers (often generated by lci-tool)<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
* Meson 0.61 or newer is now required. QEMU ships with Meson 0.61.5, which will be used if necessary.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/7.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/6.2&diff=10708ChangeLog/6.22021-12-08T08:39:08Z<p>Dahi: /* virtio */</p>
<hr />
<div><br />
== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features' ] page for details of suggested replacement functionality<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
* Improved support for Apple's Nubus, including the ability to load declaration ROMs and slot IRQ support<br />
* The macfb framebuffer device now supports the same video modes found on a real Quadra 800<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* On macOS hosts with Apple Silicon CPUs we now support the 'hvf' accelerator for running AArch64 guests<br />
* M-profile CPUs now emulate trapping on division by zero via CCR.DIV_0_TRP<br />
* The pl011 UART model now supports sending 'break'<br />
* The Fujitsu A64FX processor model is now supported in TCG ('-cpu a64fx')<br />
* The M-profile MVE extension is now supported, and enabled in the Cortex-M55<br />
* The deprecated machine names 'raspi2' and 'raspi3' have been removed; use 'raspi2b' and 'raspi3b' instead<br />
* The 'virt' machine now supports an emulated ITS<br />
* New machine type: kudo-bmc<br />
* The xlnx-zcu102 and xlnx-versal-virt machines now support BBRAM and eFUSE devices<br />
* The 'virt' machine now supports more than 123 CPUs in TCG emulation mode<br />
* The pl031 real-time clock device now supports sending RTC_CHANGE QMP events<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* Improved POWER10 support for the 'powernv' machine<br />
* Initial support for POWER10 DD2.0 CPU added<br />
* Added support for FORM2 PAPR NUMA descriptions in the "pseries" machine type<br />
** With a guest kernel that also has support, this allows for asymmetric and other complex NUMA tolopogies which previously couldn't be communicated to the guest<br />
* Maintainer changed from David Gibson & Greg Kurz, to Cédric le Goater & Daniel Henrique Barboza<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
* Add Zb[abcs] instruction support<br />
* Remove RVB support<br />
* Fixup virt flash node<br />
* Don't override users supplied ISA version<br />
* Fixup some CSR accesses<br />
* Fix an overflow in the SiFive CLINT (https://gitlab.com/qemu-project/qemu/-/issues/493)<br />
* ePMP CSR address updates<br />
* SiFive PWM support<br />
* Support for RISC-V ACLINT<br />
* Support vhost-user and numa mem options on all boards<br />
* mstatus.SD bug fix for hypervisor extensions<br />
* OpenTitan fix for USB dev address<br />
* OpenTitan update to latest bitstream build<br />
* Remove the Ibex PLIC<br />
* Bug fix of setting mstatus_hs.[SD|FS] bits<br />
* Fixes for sifive PDMA<br />
* Mark shakti_c as not user creatable<br />
* Add support for the experimental J extension<br />
* Update the fmin/fmax handling<br />
* Fixup VS interrupt forwarding<br />
<br />
=== s390x ===<br />
<br />
* Improved storage key emulation (e.g. fixed address handling, lazy storage key enablement for TCG, ...)<br />
* New gen16 CPU features are now enabled automatically in the latest machine type<br />
<br />
=== SPARC ===<br />
* Fix for booting sun4m machines with more than 1 CPU<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
* New Snowridge-v4 CPU model, with split-lock-detect feature disabled<br />
<br />
==== KVM ====<br />
* Support for SGX in the virtual machine, using the /dev/sgx_vepc device on the host and the "memory-backend-epc" backend in QEMU.<br />
* New "hv-apicv" CPU property (aliased to "hv-avic") sets the HV_DEPRECATING_AEOI_RECOMMENDED bit in CPUID[0x40000004].EAX.<br />
<br />
==== x86_64 ====<br />
<br />
==== AMD SEV ====<br />
<br />
* Measured launch with direct kernel boot is now possible by setting the 'kernel-hashes=on' property to the 'sev-guest' object. This requires a correspondingly new enough firmware to handle the hashes.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
* virtio-mem<br />
** QEMU now fully supports guest memory dumps with virtio-mem.<br />
** QEMU now cleanly supports precopy migration, postcopy migration and background snapshots with virtio-mem.<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* Fixed an occasional [https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg00320.html crash when handling 'Twalk'] requests; thus bug was introduced in QEMU 6.1.0.<br />
* Fixed sub-optimal I/O performance on guest due to incorrect IOUNIT which happened with certain applications like 'cat' which retrieve stat's st_blksize at runtime to determine their read/write buffer size.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* ESCC reset fixes<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
* we now support Txxthread:yyyy; replies instead of a plain Sxx for signals arriving at a thread<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
* New event DEVICE_UNPLUG_GUEST_ERROR, which allows guest-reported failures of hot unplugs to be reported to the user or management layer<br />
** Since this relies on the guest, an event can't be guaranteed and only some hotplug mechanisms can generate it at all<br />
** This will eventually replace MEM_UNPLUG_ERROR which reported the same thing, but only for memory unplug<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* ''qemu-nbd'' now defaults to writeback caching, rather than writethrough, to match the defaults of ''qemu-img''. While this has better performance, it may affect correctness if you were previously relying on writethrough semantics without explicit use of the '--cache=' option.<br />
* ''qemu-nbd'' now has a ''--selinux-label'' option for setting the SELinux label of a Unix socket.<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
== TCG ==<br />
<br />
* plugins now have a bool arg parsing helper and cleaned up argument syntax<br />
* the cache plugin is now multi-core aware<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
* the --enable-git-update and --disable-git-update options to configure were removed<br />
* the --disable-blobs option to configure is deprecated and should be replaced with --disable-install-blobs<br />
* the --enable-trace-backend to configure is deprecated and should be replaced with --enable-trace-backends<br />
* the --enable-jemalloc to configure is deprecated and should be replaced with --enable-malloc=jemalloc<br />
* the --enable-tcmalloc to configure is deprecated and should be replaced with --enable-malloc=tcmalloc<br />
* versions 5.2 to 6.1 of QEMU didn't fully obey the configure options --extra-cflags and --extra-ldflags, so you could have some latent bugs if you were using them (and hoping that they would work). In particular, note that passing <tt>--extra-cflags='-Wall'</tt> will override QEMU's choice of which warnings need to be disabled, and might cause the build to fail if using <tt>-Werror</tt>.<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
* The '''tests/acceptance''' folder was never used to store acceptance tests in terms of software engineering. This naming could confuse developers adding tests using the Avocado Framework to this folder. The folder name change to '''tests/avocado''' also changed the '''make''' target from '''check-acceptance''' to '''check-avocado'''. In this case, the use of the '''check-acceptance''' target is deprecated.<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/6.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/6.2&diff=10707ChangeLog/6.22021-12-08T08:34:57Z<p>Dahi: /* virtio */</p>
<hr />
<div><br />
== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features' ] page for details of suggested replacement functionality<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
* Improved support for Apple's Nubus, including the ability to load declaration ROMs and slot IRQ support<br />
* The macfb framebuffer device now supports the same video modes found on a real Quadra 800<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* On macOS hosts with Apple Silicon CPUs we now support the 'hvf' accelerator for running AArch64 guests<br />
* M-profile CPUs now emulate trapping on division by zero via CCR.DIV_0_TRP<br />
* The pl011 UART model now supports sending 'break'<br />
* The Fujitsu A64FX processor model is now supported in TCG ('-cpu a64fx')<br />
* The M-profile MVE extension is now supported, and enabled in the Cortex-M55<br />
* The deprecated machine names 'raspi2' and 'raspi3' have been removed; use 'raspi2b' and 'raspi3b' instead<br />
* The 'virt' machine now supports an emulated ITS<br />
* New machine type: kudo-bmc<br />
* The xlnx-zcu102 and xlnx-versal-virt machines now support BBRAM and eFUSE devices<br />
* The 'virt' machine now supports more than 123 CPUs in TCG emulation mode<br />
* The pl031 real-time clock device now supports sending RTC_CHANGE QMP events<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* Improved POWER10 support for the 'powernv' machine<br />
* Initial support for POWER10 DD2.0 CPU added<br />
* Added support for FORM2 PAPR NUMA descriptions in the "pseries" machine type<br />
** With a guest kernel that also has support, this allows for asymmetric and other complex NUMA tolopogies which previously couldn't be communicated to the guest<br />
* Maintainer changed from David Gibson & Greg Kurz, to Cédric le Goater & Daniel Henrique Barboza<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
* Add Zb[abcs] instruction support<br />
* Remove RVB support<br />
* Fixup virt flash node<br />
* Don't override users supplied ISA version<br />
* Fixup some CSR accesses<br />
* Fix an overflow in the SiFive CLINT (https://gitlab.com/qemu-project/qemu/-/issues/493)<br />
* ePMP CSR address updates<br />
* SiFive PWM support<br />
* Support for RISC-V ACLINT<br />
* Support vhost-user and numa mem options on all boards<br />
* mstatus.SD bug fix for hypervisor extensions<br />
* OpenTitan fix for USB dev address<br />
* OpenTitan update to latest bitstream build<br />
* Remove the Ibex PLIC<br />
* Bug fix of setting mstatus_hs.[SD|FS] bits<br />
* Fixes for sifive PDMA<br />
* Mark shakti_c as not user creatable<br />
* Add support for the experimental J extension<br />
* Update the fmin/fmax handling<br />
* Fixup VS interrupt forwarding<br />
<br />
=== s390x ===<br />
<br />
* Improved storage key emulation (e.g. fixed address handling, lazy storage key enablement for TCG, ...)<br />
* New gen16 CPU features are now enabled automatically in the latest machine type<br />
<br />
=== SPARC ===<br />
* Fix for booting sun4m machines with more than 1 CPU<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
* New Snowridge-v4 CPU model, with split-lock-detect feature disabled<br />
<br />
==== KVM ====<br />
* Support for SGX in the virtual machine, using the /dev/sgx_vepc device on the host and the "memory-backend-epc" backend in QEMU.<br />
* New "hv-apicv" CPU property (aliased to "hv-avic") sets the HV_DEPRECATING_AEOI_RECOMMENDED bit in CPUID[0x40000004].EAX.<br />
<br />
==== x86_64 ====<br />
<br />
==== AMD SEV ====<br />
<br />
* Measured launch with direct kernel boot is now possible by setting the 'kernel-hashes=on' property to the 'sev-guest' object. This requires a correspondingly new enough firmware to handle the hashes.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
* QEMU now fully supports guest memory dumps with virtio-mem devices.<br />
* QEMU now cleanly supports precopy migration, postcopy migration and background snapshots with virtio-mem devices.<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* Fixed an occasional [https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg00320.html crash when handling 'Twalk'] requests; thus bug was introduced in QEMU 6.1.0.<br />
* Fixed sub-optimal I/O performance on guest due to incorrect IOUNIT which happened with certain applications like 'cat' which retrieve stat's st_blksize at runtime to determine their read/write buffer size.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* ESCC reset fixes<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
* we now support Txxthread:yyyy; replies instead of a plain Sxx for signals arriving at a thread<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
* New event DEVICE_UNPLUG_GUEST_ERROR, which allows guest-reported failures of hot unplugs to be reported to the user or management layer<br />
** Since this relies on the guest, an event can't be guaranteed and only some hotplug mechanisms can generate it at all<br />
** This will eventually replace MEM_UNPLUG_ERROR which reported the same thing, but only for memory unplug<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* ''qemu-nbd'' now defaults to writeback caching, rather than writethrough, to match the defaults of ''qemu-img''. While this has better performance, it may affect correctness if you were previously relying on writethrough semantics without explicit use of the '--cache=' option.<br />
* ''qemu-nbd'' now has a ''--selinux-label'' option for setting the SELinux label of a Unix socket.<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
== TCG ==<br />
<br />
* plugins now have a bool arg parsing helper and cleaned up argument syntax<br />
* the cache plugin is now multi-core aware<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
* the --enable-git-update and --disable-git-update options to configure were removed<br />
* the --disable-blobs option to configure is deprecated and should be replaced with --disable-install-blobs<br />
* the --enable-trace-backend to configure is deprecated and should be replaced with --enable-trace-backends<br />
* the --enable-jemalloc to configure is deprecated and should be replaced with --enable-malloc=jemalloc<br />
* the --enable-tcmalloc to configure is deprecated and should be replaced with --enable-malloc=tcmalloc<br />
* versions 5.2 to 6.1 of QEMU didn't fully obey the configure options --extra-cflags and --extra-ldflags, so you could have some latent bugs if you were using them (and hoping that they would work). In particular, note that passing <tt>--extra-cflags='-Wall'</tt> will override QEMU's choice of which warnings need to be disabled, and might cause the build to fail if using <tt>-Werror</tt>.<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
* The '''tests/acceptance''' folder was never used to store acceptance tests in terms of software engineering. This naming could confuse developers adding tests using the Avocado Framework to this folder. The folder name change to '''tests/avocado''' also changed the '''make''' target from '''check-acceptance''' to '''check-avocado'''. In this case, the use of the '''check-acceptance''' target is deprecated.<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/6.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=Planning/6.1&diff=10573Planning/6.12021-08-17T07:16:23Z<p>Dahi: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2021-04-30<br />
| Beginning of development phase<br />
|-<br />
| 2021-07-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 />
| <strike>2021-07-20</strike> 2021-07-21<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2021-07-27<br />
| Tag rc1<br />
|-<br />
| <strike>2021-08-03</strike> 2021-08-04<br />
| Tag rc2<br />
|-<br />
| 2021-08-10<br />
| Tag rc3<br />
|-<br />
| 2021-08-17<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2021-08-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 />
https://gitlab.com/qemu-project/qemu/-/milestones/1<br />
<br />
=== Fixed in rc1 ===<br />
* [https://gitlab.com/qemu-project/qemu/-/issues/484 #484]: 6.1 Regression: machine pflash parsing<br />
* [https://gitlab.com/qemu-project/qemu/-/issues/488 #488]: 'spicevmc' is not a valid char driver name with --enable-modules<br />
<br />
=== Fixed in rc4 ===<br />
* [https://gitlab.com/qemu-project/qemu/-/issues/524 #524] : Giving -smp option a negative argument makes QEMU dump core<br />
<br />
=== Patches on list ===<br />
* [https://gitlab.com/qemu-project/qemu/-/issues/516#note_647955438 #516]: --enable-modules --enable-plugins build does not work on Mac<br />
* [https://lkml.kernel.org/r/20210805092350.31195-1-david@redhat.com]: -object memory-backend-ram,id=mem0,size=500G,reserve=off crashes QEMU due to wrong assertion<br />
<br />
=== Not fixed yet ===<br />
* "-M default_bus_bypass_iommu" not working for ARM virt machine<br />
<br />
=== Will not be fixed in 6.1 ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/6.1]] for full details.</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/5.1&diff=9623ChangeLog/5.12020-08-18T15:04:22Z<p>Dahi: /* virtio */</p>
<hr />
<div><br />
== System emulation ==<br />
=== Incompatible changes ===<br />
<br />
* The 'name' parameter of the '-net' option has been removed. 'id' can be used instead.<br />
* 'qemu-img resize' now requires --shrink for shrinking raw images, too. Previously, this was an error only for non-raw formats and resulting only in a deprecation warning for raw images.<br />
* The 'mem' parameter of the '-numa' option is not supported for 5.1 and newer machine types, use the 'memdev' parameter instead. Though for compatibility reasons the 'mem' parameter should still work for 5.0 and older machine types. The 'memdev' parameter provides better performance (pinning RAM to specified host NUMA nodes) and more control over backend's RAM, and users are advised to reconfigure existing virtual machines to use the 'memdev' parameter (requires restarting virtual machine).<br />
<br />
Details can be found in the [https://www.qemu.org/docs/master/system/deprecated.html#recently-removed-features "Recently removed features"] chapter of the QEMU System Emulation User's Guide.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://www.qemu.org/docs/master/system/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for the full list of historically deprecated features/options.<br />
<br />
In particular, note that the TileGX guest support has been deprecated and will be removed in a future version.<br />
<br />
=== 68k ===<br />
<br />
* The coldfire machines do not bail out anymore if a guest writes to or reads from an unimplemented hardware register. You can start QEMU with "-d unimp" to see these accesses instead.<br />
* Fixes in the FPU emulation<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* Emulation of the following architecture features is now implemented:<br />
** ARMv8.2-TTS2UXN<br />
** ARMv8.5-MemTag ('virt' board only, disabled by default: enable with '-machine mte=on')<br />
* xlnx-versal-virt: machine now supports RTC and SD<br />
* New board model: sonorapass-bmc<br />
* Host memory errors can now be reported to AArch64 KVM guests via ACPI when using the 'virt' board (this is disabled by default; enable with '-machine ras=on')<br />
* All the imx6 and imx7 machines now support the watchdog timer device<br />
* The Raspberry Pi boards now support the USB controller. Note that for the moment booting a Raspbian guest kernel requires adding "dwc_otg.fiq_fsm_enable=0" to the guest kernel command line.<br />
* MPS2 board models have a few new devices (watchdog, S2I, I2C)<br />
* The "virt" board now supports hot-remove of memory<br />
* Some arm boards used to automatically create a fake "empty" SD card if none was provided on the command line; these boards now correctly emulate an SD controller with no SD card present in this situation.<br />
<br />
=== AVR ===<br />
<br />
* QEMU now supports some AVR CPUs and related boards: Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560), Arduino Mega (ATmega1280) and Arduino UNO (ATmega328P).<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
* Added support for two Loongson 3A CPUs.<br />
* Loongson MMI ASE is now emulated completely.<br />
* Hardware page walker and CMMGR features enabled for P5600 CPU.<br />
* Performance of all FPU instructions for all ISAs is slightly improved.<br />
* Performance of all MSA FPU instructions is slightly improved.<br />
* Performance of a number of MSA non-FPU instructions is slightly improved.<br />
* Fulong 2E machine is renamed to Fuloong 2E.<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* The "label-size" property is now mandatory for NVDIMMs on the "pseries" machine type (the PAPR specification only supports labelled NVDIMMs)<br />
* NVLink2 devices can no longer be unplugged. This is not possible on real hardware, and was never supported by the guest side drivers, so this makes things safer.<br />
* We no longer use reconfiguration reboots to handle difficult cases during CAS option negotiation<br />
* Added an interface to inject POWER style NMIs<br />
* scv and rfscv instructions now supported in TCG<br />
* Can now select POWER10 with the "pseries" machine type<br />
* Fix regression when booting from virtio-blk-pci devices for the g3beige/mac99 machines (OpenBIOS)<br />
<br />
=== Renesas RX ===<br />
* RX GDB simulator added (as machines ''gdbsim-r5f562n7'' and ''gdbsim-r5f562n8'')<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
* OpenSBI loaded by default for ''virt'' and ''sifive_u'' machines<br />
* The ''spike_v1.9.1'' and ''spike_v1.10'' machines have been removed<br />
* The ''rv32gcsu-v1.9.1'', ''rv32gcsu-v1.10.0'', ''rv64gcsu-v1.9.1'', ''rv64gcsu-v1.10.0'', ''rv32imacu-nommu'' and ''rv64imacu-nommu'' CPUs have been removed<br />
* The RISC-V privilege spec ''1.09.1'' has been removed<br />
* Spike machine supports more then 1 CPU<br />
* Spike machine supports the ''-bios'' option<br />
* OpenSBI updated to v0.7<br />
* Support for OpenSBI firmware dynamic support<br />
* Experimental support for the v0.7.1 Vector extensions<br />
* linux-usermode improvements<br />
* Expose a "serial" property for the ''sifive_u machine that specifys the board serial number<br />
* Expose a "msel" property for the ''sifive_u machine that specifys the MSEL pin state<br />
* Support for the SiFive E34 CPU<br />
* Support for the Ibex CPU<br />
* Support for the SiFive HiFive1 revB<br />
* Support for the OpenTitan machine (''opentitan'') with PLIC and UART support<br />
* 32-bit improvements for the ''sifive_u'' machine<br />
* Corrections to the Hypervisor extension page table walking<br />
* Checks implemented when running the ''hfence'' instruction<br />
* Support for booting U-Boot on the ''sifive_u'' machine<br />
<br />
=== s390 ===<br />
* Support for protected virtualization aka secure execution has been merged (KVM only)<br />
** The host needs to be a z15 or Linux One III with at least Linux 5.7<br />
* vfio-ccw devices no longer require that the issuer sets the 'allow prefetch' bit in the ORB<br />
** The host kernel still may reject those requests, though (5.7 or older)<br />
** Note that a channel program that actually relies on no prefetching being done will still fail. In practice, though, this only applies to IPL CCWs, and that process is accommodated by the s390-ccw bios already.<br />
** The 'force-orb-pfch' property to force setting of the 'allow prefetch' bit by vfio-ccw itself still exists.<br />
* vfio-ccw now contains basic support for relaying changes of the path state to the guest<br />
<br />
=== SPARC ===<br />
<br />
* Fix booting SPARC64 kernels directly via -kernel (OpenBIOS)<br />
* Fix regression when booting from virtio-blk-pci devices for the sun4u machine (OpenBIOS)<br />
<br />
=== TileGX ===<br />
<br />
=== Tricore ===<br />
<br />
* Add gdb stub<br />
* Fix segfault due to uninitialized ctx->env ptr<br />
<br />
=== x86 ===<br />
* Improve integration between QEMU monitor and HVF accel on macOS (e.g. "info registers" displays state of CPU registers)<br />
* Fix an issue with HVF accel where guests stop responding to interrupts<br />
* Fix an issue with boot from floppy on isapc and 486 cpu (applies for all accels)<br />
* Support for live migration of AMD systems with nested virtualization<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
* QEMU now exposes a WAET (Windows ACPI Emulated Devices Table) to guests -<br />
this reduces virtualization overhead for non-enlightened windows (Vista and later)<br />
guests by avoiding guest workarounds for an unreliable ACPI PM timer.<br />
* QEMU now supports both cold and hot plug of nvdimms for ARM Guests with ACPI.<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
* The maximum logical and physical blocksizes for virtual storage devices have been increased from 32 KiB to 2 MiB.<br />
* The limit for <code>min_io_size</code> has been increased from 65536 bytes to 65536 logical blocks.<br />
* The options <code>min_io_size</code>, <code>opt_io_size</code> and <code>discard_granularity</code> accept the usual size unit suffixes (k for kilobytes, M for megabytes etc.) now.<br />
<br />
==== Graphics ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
* Introduce PMR support from NVMe 1.4 spec<br />
* Add the <code>max_ioqpairs device</code> parameter. The parameter specifies the maximum number of supported I/O queue pairs and should be used instead of the <code>num_queues</code> parameter. <code>num_queues</code> is not formally deprecated, but the device will issue a warning if used. If neither <code>num_queues</code> nor <code>max_ioqpairs</code> are specified, device behavior is unchanged from the previous default.<br />
* Add the <code>msix_qsize</code> parameter. The parameter specifies the maximum number of msix interrupt vectors supported by the device. If not specified, device behavior is unchanged from the previous default.<br />
<br />
==== PCI/PCIe ====<br />
Attempts to hotplug devices into a pci slot with hotplug disabled will now<br />
return an error instead of adding the device without notifying the guest.<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
Images not multiple of power of 2 are not allowed any longer and have to be expanded to a power of 2.<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
* TCG guests can now use vhost-user daemons (including virtiofsd). There are corner cases which could interfere with TCG's self-modifying code detection although this shouldn't occur with sane guest OSes.<br />
* The virtio code (PCI and CCW) now enforces that newer devices for which legacy support has never been specified indeed show up as virtio-1.0 or later only.<br />
** For most devices this should be not noticeable; for virtio-iommu-pci, you may need to specify the device as modern only.<br />
* A new feature, VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, has been added to the vhost-user protocol. VMs with vhost-user device backends which support this feature will not be subject to the current max RAM slots limit of 8 and will be able to hot-add memory as many times as the target platform supports.<br />
* A first version of virtio-mem, including virtio-mem-pci, for x86-64 has been included in QEMU. virtio-mem allows for fine-grained, NUMA-aware memory hot(un)plug for VMs, avoiding many limitations known from memory ballooning (virtio-balloon) and DIMM-based memory hot(un)plug. Linux guests support virito-mem with v5.8. More information can be found at https://virtio-mem.gitlab.io/<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
* virtiofsd:<br />
** Security fix: CVE-2020-10717, resource exhaustion of host fd's<br />
** Jailing improvements<br />
** Ensure that existing mounts under the shared directory are visible to the guest<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* The 'socket' backend now supports the abstract namespace for UNIX sockets, with the new 'abstract' and 'tight' options<br />
<br />
=== Crypto subsystem ===<br />
<br />
* Support for passing secrets to QEMU via the Linux keyring, using the "secret-keyring" object type.<br />
* Add ability to disable all RNG sources at build time for constrained use cases not requiring this functionality.<br />
<br />
* Added support for LUKS keyslot management via qemu-img amend and via qmp (experimental)<br />
<br />
Typical usage:<br />
<br />
* Adding new keyslot<br />
<br />
qemu-img amend \<br />
--object secret,id=sec0,data=current_password \<br />
--object secret,id=sec1,data=new_password \<br />
--image-opts driver=luks,file.filename=test.luks,key-secret=sec0 \ #image has to be opened with --image-opts to pass current secret<br />
-o state=active,new-secret=sec1,[keyslot=1] #keyslot is optional<br />
<br />
<br />
* Erasing a keyslot that contains an old password.<br />
<br />
<br />
qemu-img amend \<br />
--object secret,id=sec0,data=current_password \<br />
--object secret,id=sec1,data=new_password \<br />
--image-opts driver=luks,file.filename=test.luks,key-secret=sec0 \<br />
-o state=inactive,old-secret=sec1 <br />
<br />
<br />
Note that you can't erase last keyslot since that will make image non-recoverable.<br />
<br />
If you insist to destroy the data by erasing last keyslot you can pass --force to qemu-img for that purpose.<br />
<br />
You can also erase a specific keyslot. The comment about last keyslot applies here as well.<br />
<br />
qemu-img amend \<br />
--object secret,id=sec0,data=current_password \<br />
--object secret,id=sec1,data=new_password \<br />
--image-opts driver=luks,file.filename=test.luks,key-secret=sec0 \<br />
-o state=inactive,keyslot=sec1 <br />
<br />
The same interface is also available for qcow2 encrypted images in similar matter: <br />
<br />
qemu-img amend \<br />
--object secret,id=sec0,data=current_password \<br />
--object secret,id=sec1,data=new_password \<br />
--image-opts driver=qcow2,file.filename=test.qcow2,encrypt.key-secret=sec0 \<br />
-o encrypt.new-secret=sec1,encrypt.state=active<br />
<br />
<br />
==== experimental qmp interface ====<br />
<br />
x-blockdev-amend was added with similiar interface to blockdev-create, which accepts driver specific options.<br />
<br />
It is currently only defined for luks and qcow2<br />
<br />
<br />
<br />
Open an image:<br />
<br />
{'execute': 'object-add', 'arguments': {'qom-type': 'secret', 'id': 'keysec0', 'props': {'data': 'current_password'}}}<br />
{'execute': 'object-add', 'arguments': {'qom-type': 'secret', 'id': 'keysec1', 'props': {'data': 'new_password'}}}<br />
<br />
{'execute': 'blockdev-add', 'arguments': {'driver': 'qcow2', 'node-name': 'testdev', 'read-only': False, 'encrypt': {<br />
'format': 'luks', 'key-secret': 'keysec0'}, 'file': {'driver': 'file', 'filename': 'test.qcow2'}}}<br />
<br />
Add a new key (as blockdev-create, also uses a job, so job needs to be waited upon)<br />
<br />
{'execute': 'x-blockdev-amend', 'arguments': {'node-name': 'testdev', 'job-id': 'my_job_id', 'options': {'driver': 'qcow2', 'encrypt': {'state': 'active', 'new-secret': 'keysec1', 'format': 'luks'}}}}<br />
<br />
Remove a key:<br />
<br />
{'execute': 'x-blockdev-amend', 'arguments': {'node-name': 'testdev', 'job-id': 'my_job_id', 'options': {'driver': 'qcow2', 'encrypt': {'state': 'inactive', 'old-secret': 'keysec0', 'format': 'luks'}}}}<br />
<br />
It is expected that higher-level libraries (e.g libvirt) will make more user friendly interface.<br />
<br />
=== GUI ===<br />
* Windows keyboard fixes for GTK and SDL<br />
<br />
=== GDBStub ===<br />
* bug fix to m68k gdbstub<br />
* linux-user now supports unix socket for debugging (needs a new gdb)<br />
* some tests for the stub added to check-tcg<br />
* wider watchpoints are supported in system emulation mode<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
* Migration of block dirty bitmaps when not using -blockdev now avoids using generated node names; without this fix, a migration attempt that included bitmaps and was attempted while a mirror job was active (which was a common scenario with older libvirt that did not use -blockdev but set up an NBD mirror for storage migration in parallel) would generally fail due to the difference in generated node names between the source and destination.<br />
* Error handling during migration with block dirty bitmaps is improved. As block dirty bitmaps are not essential to guest operation but merely permit an incremental backup, and as a full backup is always a reliable solution when incremental backup is not possible, any failure to migrate a dirty bitmap is no longer fatal to migration in general. Similarly, migrating when a backing file has a read-only bitmap no longer causes an error when trying to reload that bitmap.<br />
<br />
=== Monitor ===<br />
<br />
==== HMP ====<br />
* "info qom-tree" now shows children sorted.<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
* Optional zstd compression for qcow2 (enable with <code>compression_type=zstd</code> as a creation option)<br />
* file-posix has a new image creation option <code>extent_size_hint</code> that defines an extent size hint that should be added to the image file to help avoiding fragmentation (especially with cache=none or more generally cache.direct=on). The default is 1M, 0 disables the hint. Note that this optimisation does not apply to existing images and images created outside of QEMU. For example, if you copy images with tools like ''cp'', the copy will not have the extent size hint set and will be as prone to filesystem fragmentation as before.<br />
* 'qemu-img map' gained --start-offset and --max-length options for mapping only a subset of a file<br />
* 'qemu-img' gained a new command mode 'bitmap' for manipulating persistent bitmaps in qcow2 files<br />
* 'qemu-img measure' now reports the space occupied by persistent bitmaps in qcow2 files<br />
* 'qemu-img convert' gained a new --bitmaps option for convenience in copying bitmaps alongside guest-visible content of qcow2 files<br />
* Fixed regression with 'qemu-nbd -c /dev/nbd0' keeping inherited stderr open (introduced in 4.1)<br />
* Fixed regression where a compliant NBD client could cause qemu as NBD server to assert (CVE-2020-10761, introduced in 4.2)<br />
* Fixed extending resize of overlay images that are shorter than their backing file (this would previously make the backing file content reappear, but it should contain only zeros)<br />
* Block jobs that copy the image content check now that the source and target image have the same size and return an error if this is not the case. If you are intentionally copying only part of the image, consider using a ''raw'' node with a <code>size=...</code> option specified to make only the right size of the larger image visible.<br />
* file-posix: Fixed read-only Linux block devices with auto-read-only<br />
* VMDK: Fixed handling of zeroed clusters<br />
* Fixed bug where NBD trim and zero requests larger than 2G would fail with EIO<br />
* Fixed bug where NBD reconnect could deadlock in various scenarios<br />
* NBD now allows no-op resize requests, which in turn permits 'qemu-img convert -c' to an appropriately-sized NBD destination<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
* HMP: qom-set can now take JSON for the value with the optional -j flag<br />
* HMP: new command: qom-get can now be used to read the value of a qom property<br />
<br />
== User-mode emulation ==<br />
<br />
== TCG ==<br />
<br />
* support for wider watchpoints in system emulation<br />
* support for vhost-user daemons<br />
* new "lockstep" plugin<br />
* smarter auto-sizing of tb-size based on host-physical memory. You should still use -tb-size if you run a lot of system emulation at the same time.<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
* Prebuilt docker images are now stored at the GitLab registry: registry.gitlab.com/qemu-project/qemu <br />
* docker.py build framework is now registry aware<br />
* Updated aarch64 container for bullseye based compiler for testing newer features<br />
<br />
=== Build Dependencies ===<br />
* Now requires GTK 3.22 or newer<br />
<br />
=== Testing ===<br />
<br />
* vm-build tests can now use alternatives to genisoimage (cdrkit)<br />
* new ubuntu.aarch64 and centos.aarch64 vm-build targets<br />
* Support for --enable-tsan build<br />
<br />
=== Windows ===<br />
<br />
== Known issues ==<br />
* see [[Planning/5.1]]</div>Dahihttps://wiki.qemu.org/index.php?title=Documentation/Platforms&diff=9388Documentation/Platforms2020-03-17T13:01:58Z<p>Dahi: </p>
<hr />
<div>[[Category:User documentation]]<br />
<br />
Platforms available in QEMU:<br />
<br />
{|<br />
| width="50%" valign="top" |<br />
<br />
{|class="wikitable sortable" style="font-size: small; text-align: center; table-layout: fixed;"<br />
! Platform<br />
! Hardware Virtualization<br />
! TCG Guest<br />
! MTTCG<br />
! TCG Host<br />
|-<br />
| [[Documentation/Platforms/Alpha|Alpha]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/ARM|ARM]]<br />
| {{Yes|KVM}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes|32 & 64bit}}<br />
|-<br />
| [[Documentation/Platforms/CRIS|CRIS]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/HPPA|HPPA]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/PC|i386/x86-64]]<br />
| {{Yes|KVM, HAX, HVF, WHPX}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/LatticeMico32|LatticeMico32]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/68k|68K]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/MicroBlaze|MicroBlaze]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/MIPS|MIPS]]<br />
| {{Yes|KVM}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/Moxie|Moxie]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/Nios2|Nios2]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/OpenRISC|OpenRISC]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/POWER|Power]]<br />
| {{Yes|KVM}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/PowerPC|PowerPC]]<br />
| {{Yes|KVM}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/RISCV|RISC-V]]<br />
| {{No|soon*}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/SH4|SH4]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/SPARC|Sparc]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/S390X|s390x]]<br />
| {{Yes|KVM}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
|-<br />
| [[Documentation/Platforms/TileGX|TileGX]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/TriCore|TriCore]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/Unicore32|Unicore32]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
| [[Documentation/Platforms/Xtensa|Xtensa]]<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
|}<br />
<br />
| width="50%" valign="top" |<br />
{| class="wikitable"<br />
! colspan="2" | Features<br />
|-<br />
| '''Hardware Virtualization'''<br />
| If the platform supports hardware supported virtualization<br />
|-<br />
| '''TCG Guest'''<br />
| If you can run as an emulated guest on any supported platform<br />
|-<br />
| '''MTTCG'''<br />
| If the emulated guest support can run on [[Features/tcg-multithread|multiple host threads]]<br />
|-<br />
| '''TCG Host'''<br />
| If the platform can host any supported guest with TCG generated code<br />
|}<br />
<br />
|}<br />
<br />
All platforms emulated by QEMU should be documented in sub-pages here:<br />
<br />
{{Special:PrefixIndex/Documentation/Platforms/}}</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/4.2&diff=8980ChangeLog/4.22019-10-14T15:33:59Z<p>Dahi: /* s390 */</p>
<hr />
<div><br />
== System emulation ==<br />
=== Incompatible changes ===<br />
<br />
* The minimum version of the glib library is now 2.48<br />
<br />
=== New deprecated options and features ===<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 />
* Added new "next-cube" machine for emulating a classic NeXTcube (still incomplete, can only boot to the firmware prompt)<br />
<br />
=== Arm ===<br />
<br />
=== HPPA ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
* Fixed bug involving emulation of ST.W instruction in system mode only (there was no bug in Linux user mode).<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
* Behavior for unplug of multifunction PCI devices has been changed to match x86. Attempting to unplug any function will cause an unplug of the whole slot.<br />
* There are now separate machine types for POWER8 based and POWER9 based non-virtualized machines (powernv8 & powernv9).<br />
* Default RAM size for powernv machines has been increased to 1.75G which should allow more things to work with the default parameters.<br />
* RTAS (runtime firmware) code is now supplied by SLOF (boot time firmware) instead of by qemu itself. This won't affect users in most cases, but will affect users of -bios which bypasses SLOF, which includes kvm-unit-tests. You'll need a sufficiently recent version of kvm-unit-tests to handle this.<br />
* mffsce, mffscrn and mffscrni POWER9 instructions now supported in TCG<br />
* powernv machine now includes models for the Homer and OCC SRAM system devices<br />
* "info pic" HMP command now reports whether the irq chip is emulated in kernel or in qemu<br />
* pseries machine type no longer permits NUMA nodes with no CPU and no memory - this was already unlikely to work due to problems expressing this configuration to the guest<br />
<br />
=== RISC-V ===<br />
<br />
* The `-initrd` argument is now supported.<br />
<br />
=== s390 ===<br />
* TCG now implements IEP (Instruction Execution Protection), a CPU feature introduced with the z14. Until the "qemu" CPU model is lifted to a z14, it can be enabled using the "max" CPU model ("-cpu max").<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 />
==== Block devices ====<br />
<br />
==== GPIO ====<br />
<br />
==== Graphics ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
===== IPMI UUIDs =====<br />
<br />
UUID handling for the built-in IPMI BMC has changed. Before the UUID was set from the qemu UUID, if that was set. However, in a real system, the UUID of a BMC will be independent of the system UUID. So now the UUID must be explicitly set for a BMC if you want one. Otherwise the BMC will not have a UUID.<br />
<br />
To set the UUID of a BMC, use the new property <code>guid=11223344-5566-7788-99aa-bbccddeeff00</code> for the ipmi-bmc-sim device.<br />
<br />
===== IPMI PCI Devices =====<br />
<br />
New PCI interfaces for IPMI KCS and BT devices are available. The devices <code>pci-ipmi-kcs</code> and <code>pci-ipmi-bt</code> are used to choose these devices.<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 />
* the "local" backend now has a new 'multidevs' option to deal with cross-device setups (ie. when the shared directory spans over multiple devices on the host)<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== Host support ===<br />
* Any backend that supports connection as an Inet client (NBD, chardev, network device, monitor...) can now request to use TCP keep-alive with the server.<br />
<br />
=== Memory backends ===<br />
<br />
<br />
=== Monitor ===<br />
* bugs in [[Features/gdbstub|gdbstub]] handling of F and ! packets have been fixed<br />
<br />
=== Migration ===<br />
* The 'validate-uuid' migration compatibility checks the UUID matches on migration, preventing accidental migration of the wrong VM to the wrong destination. (Yury Kotov)<br />
<br />
=== Network ===<br />
<br />
* The user mode host network backend now allows to set a guest-visible DNS address which is not in the virtual network, unless restrict mode is enabled.<br />
<br />
=== Block device backends and tools ===<br />
* Block drivers can now support BDRV_REQ_PREFETCH for more efficient handling of copy-on-read requests; the NBD driver has wired this up to NBD_CMD_CACHE.<br />
* The LUKS block driver supports falloc/full preallocation.<br />
* The NBD server now advertises NBD_FLAG_CAN_MULTI_CONN on shared readonly connections.<br />
* The NBD server and client support the new NBD_CMD_FLAG_FAST_ZERO as an optimization during the copying of sparse images.<br />
* The backup block job now creates a filter node, just like mirror and commit do. Clients that care about the structure of the block graph need to take this into account.<br />
* Several assertion failures relating to the use of an NBD server with iothreads have been fixed.<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
<br />
== User-mode emulation ==<br />
<br />
=== Alpha ===<br />
=== Xtensa ===<br />
* call0 ABI may be selected for the user emulation with command line option -xtensa-abi-call0 (or with QEMU_XTENSA_ABI_CALL0 environment variable).<br />
<br />
== TCG ==<br />
<br />
* The tcg tests have had their configuration and build somewhat dissentagled from the main make file<br />
* tcg tests are now in $BUILDDIR/tests/tcg/$TARGET/ (rather than $BUILDDIR/$TARGET/tests/)<br />
<br />
== Guest agent ==<br />
<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
* The minimum supported version of Python is now 3.5.<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
* The docker.py tooling now supports podman containers [https://podman.io/] as an alternative to docker<br />
* the docker.py now requires python3 to run<br />
* a number of the cross compiler containers have been updated to Buster<br />
<br />
=== Build Dependencies ===<br />
* The minimum version of the glib library is now 2.48<br />
<br />
=== Testing ===<br />
<br />
=== Windows ===<br />
<br />
== Known issues ==<br />
* see [[Planning/4.2]]</div>Dahihttps://wiki.qemu.org/index.php?title=Planning/4.1&diff=8862Planning/4.12019-08-14T15:42:48Z<p>Dahi: /* Not yet fixed in any rc */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2018-04-24<br />
| Beginning of development phase<br />
|-<br />
| 2019-07-02<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-07-09<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2019-07-16<br />
| Tag rc1<br />
|-<br />
| 2019-07-23<br />
| Tag rc2<br />
|-<br />
| 2019-07-30<br />
| Tag rc3<br />
|-<br />
| 2019-08-06<br />
| Tag rc4<br />
|-<br />
| 2019-08-13<br />
| Tag rc5<br />
|-<br />
| 2019-08-15<br />
| Release<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 />
=== Fixed in rc1 ===<br />
* virtio-balloon/migration compatibility: There's a migration break between 3.1<->4.x; reported by Wolfgang Bumiller; fixed by stefan's virtio-balloon: fix QEMU 4.0 config size migration incompatibility 2019-07-10 - fixed by 2bbadb08ce272d65e1f78621002008b07d1e0f03<br />
* migration: migratie/migrate_cancel/migrate: Ivan Ren's post from 14th July - 'migration: always initial RAMBlock.bmap to 1 for new migration' - fixed by 40c4d4a835453452a262f32450a0449886aa19ce<br />
<br />
=== Fixed in rc2 ===<br />
* x86 --without-default-devices is broken due to CONFIG_VMMOUSE being "select"ed.<br />
* The virtio-pmem device is no longer "at-risk" -- the kernel header changes got taken into mainline without changes that require us to resync or to revert the QEMU side changes<br />
<br />
=== Fixed in rc3 ===<br />
<br />
* snowridge cpu name/features<br />
* coverity issue in block/nvme<br />
* virtio devices seem to have lost PCIe capability and PCIe powermanagement capabilities (David Gilbert posted revert's for 'report invalid disable-legacy|modern usage for virtio-1-only devs')<br />
* copy-on-read migration permissions issue<br />
* inserting read-only image to initially empty scsi-cd is incorrectly rejected<br />
* inserting read-only image to initially empty floppy drive is incorrectly rejected<br />
* arm emulated BKPT/BRK insn at EL2 can be taken to EL1<br />
* unwanted ACS capability on PCI bridges on old machine types<br />
<br />
=== Fixed in rc4 ===<br />
<br />
* M-profile CPUs with FPU but without Security Extensions do bogus NSACR checks (LP:1838475)<br />
* We forgot to update the slirp submodule<br />
* The backup job’s use of copy offloading is broken<br />
* A mirror job with copy-mode=write-blocking may fail to copy some data from the source<br />
* Performing an incremental backup with a bitmap that had been added to a block node before it was grown with block_resize will ignore all dirty areas past the node’s original size<br />
* Compat handling turns off 'edid' only for virtio-gpu-pci, but not for virtio-gpu-ccw<br />
<br />
=== Will be fixed in rc5 ===<br />
<br />
* PPC bugs with the XIVE interrupt controller for spapr<br />
* Makefile issue if you're building the risc-v bios blobs from source<br />
* Security bug with bochs-display device<br />
<br />
=== Not yet fixed in any rc ===<br />
* s390x TCG: The VERIM instruction can make QEMU crash<br />
<br />
=== Issues that will not be fixed ===<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/4.1]] for full details.</div>Dahihttps://wiki.qemu.org/index.php?title=Internships/ProjectIdeas/memhotplug_test&diff=8081Internships/ProjectIdeas/memhotplug test2019-01-14T14:10:54Z<p>Dahi: /* Memory hotplug test */</p>
<hr />
<div>=== Memory hotplug test ===<br />
<br />
'''Summary:''' Create memory hotplug testing infrastructure.<br />
<br />
Several QEMU targets support memory hotplug feature, which allows to (un)provision extra memory without requiring virtual machine reboot or restart for changes to take the effect. QEMU however lacks regression tests for the feature. Goal of the project is refactor QEMU's "-m" option legacy parsing into machine object properties, which should provide ability to inspect memory settings using QMP interface and implement test cases on top of that.<br />
<br />
Project is to be split in to following parts:<br />
* Refactor "-m mem,slots,maxmem" into MachineClass properties and replace related global variables where they are still used with properties. Make "set_memory_options()" use new properties leaving only CLI parsing there. Goal is to make "set_memory_options()" function a thin wrapper that takes care of CLI parsing and makes CLI option '-m' an alias to new -machine mem/mem-slots/maxmem options.<br />
* Create a set of basic tests for 'make check' to verify that -m/-machine CLI parsing works as expected and based on that a set memory hot-add tests using QMP introspection to verify the expected behaviour.<br />
* If time allows create guest-host memory hotplug ABI tests for x86/sPAPR/s390x targets.<br />
<br />
'''Links:'''<br />
* $(QEMU sources)/docs/memory-hotplug.txt<br />
<br />
'''Details:'''<br />
* Skill level: intermediate<br />
* Language: C<br />
* Mentor: Igor Mammedov <imammedo@redhat.com> ("imammedo" on IRC), David Hildenbrand <david@redhat.com> ("dhildenb" on IRC)</div>Dahihttps://wiki.qemu.org/index.php?title=Contribute/BiteSizedTasks&diff=7630Contribute/BiteSizedTasks2018-06-08T09:24:38Z<p>Dahi: /* Error checking */</p>
<hr />
<div>__TOC__<br />
'''Note''': Before starting on one of these tasks, it would be wise to double-check the list archives to ensure no one else has recently submitted similar cleanups for the same task. And before submitting a patch to the mailing list, please make sure that you've read and understood the [[Contribute/SubmitAPatch]] page.<br />
<br />
== API conversion ==<br />
* Remove leading underscores from #defines: Identifiers with leading underscores followed by another underscore or a capital letter are reserved by the C standard. Use something like <code>grep 'define[ \t]*_[A-Z_]' $(find -name \*.h | grep -v roms | grep -v linux)</code> to find files that might violate this rule, double-check whether the file should be cleaned up or not (some files that are derived from other sources like the Linux headers should not be changed), and then send patches to remove the leading underscores if it is OK there. (contact: THH)<br />
* Look for uses of malloc, and convert them to either g_malloc, g_new (more rarely g_try_malloc or g_try_new if a lot of memory is being allocated). Likewise, convert calloc to either g_new0 or g_try_new0. Drop return value checks unless using g_try_new/g_try_new0. (This needs to be done for one data structure at a time, because an allocation with malloc must be freed with free but an allocation with g_malloc must be freed with g_free. So you need to do a bit of analysis of the code to see where an allocation may be later freed.) Please ignore the mallocs in libdecnumber and tests/tcg/.<br />
* [[ToDo/CodeTransitions#Makefile|Associate external libraries with the object files that actually use them]]<br />
* Replace calls to functions named cpu_physical_memory_* with address_space_*.<br />
* Change net_socket_listen_init and net_socket_connect_init to use the functions in include/qemu/sockets.h instead of parse_host_port/bind/connect/listen.<br />
* Replace calls to object_child_foreach() with object_child_foreach_recursive() when applicable: nvdimm_device_list, nmi_monitor_handle, find_sysbus_device, pc_existing_dimms_capacity_internal, qmp_pc_dimm_device_list, pc_dimm_slot2bitmap, pc_dimm_built_list, build_dimm_list.<br />
* Devices which create MemoryRegions with the old_mmio accessors should be converted to new style mmio accessors.<br />
* The [[ToDo/CodeTransitions]] page tracks ongoing internal QEMU API transitions. Most are not trivial but it's a good source of ideas.<br />
<br />
== Header cleanups ==<br />
* avoid including files from include/exec/cpu-common.h.<br />
* move declarations out of qemu-common.h for functions declared in utils/ files: e.g. include/qemu/path.h for utils/path.c, include/qemu/id.h for utils/id.c, etc.<br />
* Clean up includes to reduce compile time. There are many "touch it, recompile the world" headers in the QEMU project. See http://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg07189.html for a list of headers (not all of them can be cleaned up, though) and http://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg06941.html for examples how to get rid of them. (contact: THH)<br />
<br />
== Device models ==<br />
* Categorize devices: Run "<code>qemu-system-x86_64 -device help</code>" or "<code>qemu-system-arm -M none -device help</code>" and look for devices that are in the "uncategorized devices" section. Ideally, each device should have a category, even if it's just the "misc devices" category. Identify the source file of such an uncategorized devices and set an appropriate DEVICE_CATEGORY bit in its device class categories field (use "<code>grep -r DEVICE_CATEGORY hw/</code>" to see some examples). (contact: THH)<br />
* Include SDState by value instead of allocating it in sd_init (hw/sd/).<br />
* Look for invocations of qemu_system_reset_request() in hw/. Whenever they correspond to some kind of watchdog that has triggered, change to watchdog_perform_action().<br />
* "QOMify" devices: Some devices are still not adapted to the recent QEMU Object Model (QOM) yet. Try to identify such devices and convert them to the recent QOM device model. Details can be found in Andreas Färber's talk during KVM Forum 2013: https://www.youtube.com/watch?v=9LXvZOrHwjw . Note that this is a rather advanced task already. (contact: THH)<br />
* Convert qdev pointer properties (defined with DEFINE_PROP_PTR) to QOM links. Example: commit 873b4d3.<br />
* Add support for attribute((bitwise)), tag structure fields and use that for static checking of structure endian-ness accesses<br />
<br />
== Error checking ==<br />
* Add checks for NULL return value to uses of qemu_find_file.<br />
* Add checks for negative return value to uses of load_image_targphys, get_image_size, event_notifier_init, msix_init.<br />
* Use qemu_strtol/qemu_strtoul/qemu_strtoll/qemu_strtoull more. (contact: eblake)<br />
* Make qemu_thread_create return a flag to indicate if it succeeded rather than failing with an error; make all callers check it.<br />
* error_report() and friends already add a "qemu-system-xxx" prefix to the string, so a "qemu: " prefix is redundant in the strings there. Run '<code>grep -r "error_.*qemu: " *</code>' in the source tree to locate these bad strings and send a patch to remove the "qemu:" prefixes. (contact: THH)<br />
* Using "NULL" for errp in case "it cannot fail" should be avoided. If there is an unexpected error generated, it will simply be ignored. Making use of "&error_abort" instead allows us to catch unexpected errors.<br />
<br />
== Large frames ==<br />
* The following functions have very large stack frames (as obtained with -Wstack-usage=16383), mostly due to huge arrays. Make the stack array smaller and allocate on the heap in the rare case that the data does not fit in the small array:<br />
<br />
hw/dma/xilinx_axidma.c stream_process_mem2s 16480 bytes<br />
hw/net/virtio-net.c virtio_net_receive 16544 bytes<br />
net/tap.c net_init_tap 16752 bytes<br />
hw/display/vmware_vga.c vmsvga_fifo_run 20688 bytes<br />
hw/virtio/virtio.c virtqueue_pop 24768 bytes<br />
hw/net/virtio-net.c virtio_net_flush_tx 32928 bytes<br />
hw/virtio/virtio.c qemu_get_virtqueue_element 49216 bytes<br />
hw/virtio/virtio.c qemu_put_virtqueue_element 49216 bytes<br />
hw/net/opencores_eth.c open_eth_start_xmit 65664 bytes<br />
hw/net/spapr_llan.c h_send_logical_lan ~64Kbytes (uses alloca)<br />
hw/arm/nseries.c n8x0_init 65728 bytes<br />
net/net.c nc_sendv_compat 69680 bytes<br />
net/socket.c net_socket_send 69712 bytes<br />
<br />
:For a larger list of functions with stack sizes of 1K or bigger, see http://article.gmane.org/gmane.comp.emulators.qemu/314061 (dead link)<br />
<br />
== Dead code removal ==<br />
* hw/display contains files named *_template.h. These are included many times with different values of the DEPTH macro. However, only the DEPTH == 32 case is used. Remove support for DEPTH != 32 in the template headers and in the file that include them. See also https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg03247.html<br />
* Look for functions that are named *_exit or *_exitfn in hw/ and that return int. They should all return zero. Make them return void, and remove the checks for the callers.<br />
* Once the above change is done, remove the "Error **" argument from functions named *_unrealize in hw/<br />
* Use the technique described at https://blog.flameeyes.eu/2008/01/today-how-to-identify-unused-exported-functions-and-variables to identify unused global functions and variables, try to decide whether it's a good idea to remove the detected code fragments and send (single) patches to remove them if applicable. (contact: THH)<br />
<br />
== Tracing ==<br />
* Add tracepoints. All functions that are named ''something''_helper, and all functions mentioned in MemoryRegionOps are good candidates.<br />
<br />
== Bitrot prevention ==<br />
* Files with conditional debug statements should ensure that the printf is always compiled, and merely hidden behind <code>if (0)</code> when not debugging, rather than <code>#ifdef</code>'d out. This prevents bitrot of the format string of the debug statement. See this {{git|c691320faa6}} for an example. Or, go one step further and convert the debug statements to tracepoints. (contact: eblake)<br />
<br />
== Developer conveniences ==<br />
* Coding style cleanup: Some files in the util/ and slirp/ folder use TABs for indentation instead of spaces, so sending patches that affect these files usually trigger a warning by the checkpatch.pl script. Identify the files with the wrong indentations and send a patch to adapt the files to the QEMU coding style conventions (i.e. indent with 4 spaces instead of TABs). (contact: THH)<br />
<br />
== Functions that should be static ==<br />
* For example: vga_sync_dirty_bitmap, WC_CONFIG_STRING, WC_FULL_CONFIG_STRING, WC_MODEL_STRING, timer_put, vfio_region_ops, vfio_reset_handler, cpu_gen_init, monitor_read_bdrv_key_start, pdu_marshal, pdu_unmarshal, qcrypto_hmac_alg_map (crypto/hmap-nettle.c), spapr_tce_set_need_vfio, virtqueue_map, vnc_disconnect_finish, vnc_display_init, gicv3_full_update_noirqset, cpu_disable_ticks, cpu_enable_ticks, qemu_thread_exit (actually unused in thread-posix.c), qemu_egl_init_dpy_mesa, monitor_defs (3 occurrences), ppc405cr_init (unused?), apic_deliver_irq, pcie_host_mmcfg_map, pcie_host_mmcfg_unmap<br />
* tracetool-generated arrays (e.g. hw_mem_trace_events in the generated file hw/mem/trace.c) should be static.<br />
* The property types defined in hw/core/qdev-properties-system.c should be moved to other directories (e.g. hw/net for network-related property types). After doing this, some functions probably could become static, too.<br />
<br />
== Consistent option usage in documentation ==<br />
qemu uses getopt_long_only(), which means that '-help' and '--help' are parsed identically; however, the short form is considered a crutch. Meanwhile, other binaries in the qemu package use getopt_long(), which requires the double-dash form. For consistency, all documentation examples should mention the long spelling with two dashes, especially since some options (like --object) have the same syntax between multiple binaries. (contact: eblake)<br />
<br />
== Potentially easy bugs ==<br />
These are bugs that are really easy to reproduce, don't require any complicated setup and are probably some simple missing check - but there again we've not looked at them yet!<br />
<br />
* A collection of command-lines that can crash QEMU can be generated with the scripts/device-crash-test tool from the QEMU sources (but currently, we seem to be in a good shape, so if you don't see any useful output, pick another task instead)<br />
* Potentially easy bugs from the bugtracker:<br />
** https://bugs.launchpad.net/qemu/+bug/304636 ("-hda FAT:. limited to 504MBytes")<br />
** https://bugs.launchpad.net/qemu/+bug/603872 ("qemu-img image does not show percentage")<br />
** https://bugs.launchpad.net/qemu/+bug/1592351 ("mouse pointer offset with gtk,gl=on")<br />
** https://bugs.launchpad.net/qemu/+bug/1661815 ("Stack address is returned from function")<br />
** https://bugs.launchpad.net/qemu/+bug/1720969 ("qemu/memory.c:206: pointless copies of large structs")<br />
<br />
== Python 3 conversion ==<br />
<br />
Some Python modules are still need to be converted to Python 3. See https://gist.github.com/ehabkost/c1d4e631d1c979ce4919f3bc8c00f406 for some examples found using the <tt>2to3</tt> tool.<br />
<br />
== Contact persons ==<br />
<br />
Some of these tasks are described very briefly and somewhat cryptically. If you're not sure what a task involves, then feel free to ask for clarification on the qemu-devel mailing list, or the contact person for the task (if the task has been marked with a contact):<br />
<br />
* THH: Thomas Huth (mail: thuth AT redhat.com -- IRC: th_huth)<br />
* eblake: Eric Blake (mail: eblake AT redhat.com -- IRC: eblake)</div>Dahihttps://wiki.qemu.org/index.php?title=ChangeLog/2.11&diff=7208ChangeLog/2.112017-11-15T16:36:42Z<p>Dahi: /* s390 */</p>
<hr />
<div>== Warning: unsupported host systems ==<br />
* Support for AIX has been removed.<br />
* Support for the ia64 (Itanium) host CPU architecture has been removed.<br />
<br />
Unsupported host setups are CPU and operating systems which we do not have access to and are thus unable to test. They will continue to work in this release (though configure will warn you about the unsupported status), but in a future QEMU release we may drop support for those hosts unless somebody volunteers to help us with maintaining them (and can provide build/CI machines).<br />
<br />
This affects the OSes:<br />
* GNU/kFreeBSD<br />
* DragonFly BSD<br />
* OpenBSD (we have a build system for OpenBSD but would still be interested in talking to people who want to help us with supporting and improving QEMU on this OS)<br />
* Solaris<br />
* Haiku<br />
<br />
== System emulation ==<br />
* Improved memory usage and startup time for large number of devices.<br />
=== Incompatible changes ===<br />
* The sun4u changes may require changes to the QEMU command line. For more information read the Documentation/Platforms/SPARC wiki page (section [[Documentation/Platforms/SPARC#Changes to sun4u machine from 2.11 onwards|Changes to sun4u machine from 2.11 onwards]])<br />
* Invalid scsi-disk block size configurations, with the logical block size smaller than the physical block size, are rejected.<br />
* The legacy PCI assignment device for KVM, "pci-assign", was removed. Support for the device was deprecated in Linux in 2015 and removed in Linux 4.12. Use "vfio-pci" instead.<br />
=== Deprecated options ===<br />
* The command-line option "-hdachs" is now deprecated. Use the geometry options of "-device" instead.<br />
* The command-line option "-usbdevice" is now deprecated, use "-device" instead.<br />
* Using "-net dump" for capturing network traffic is now deprecated, use "-object filter-dump" with "-netdev" instead.<br />
* The parameters "serial", "trans", "secs", "heads", "cyls" and "addr" of the "-drive" option are now deprecated. Use the corresponding options of "-device" instead.<br />
* The monitor commands "usb_add" and "usb_del" are now deprecated, use "device_add" and "device_del" instead.<br />
* The monitor commands "host_net_add" and "host_net_remove" are now deprecated. Use "netdev_add" and "netdev_del" instead.<br />
* The "-nodefconfig" option is now deprecated. Use "-no-user-config" instead.<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 />
* Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users.<br />
* For x86, specifying a CPUID feature with both "+feature/-feature" and "feature=on/off" will cause a warning. The current behavior for this combination ("+feature/-feature" wins over "feature=on/off") will be changed so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively).<br />
* The read-only block drivers "bochs", "cloop" and "dmg" as well as "rbd" and "vvfat" in certain read-only configurations will no longer enable read-only mode automatically. It will be necessary to specify "read-only=on" explicitly on the command line and in QMP commands for the setup to keep working; the default "read-only=off" setting will result in an error.<br />
<br />
=== Alpha ===<br />
=== 68k ===<br />
=== ARM ===<br />
* lots of changes in M profile emulation, initial patches working towards ARMv8M support<br />
* KVM allows using the PMU even with userspace irqchip<br />
* QEMU can generate aborts on memory transaction failures<br />
* Support for the Smartfusion2 board<br />
* The xlnx-ep108 machine type is deprecated, and the (identical) xlnx-zcu102 machine type can be used instead<br />
* The generic PCIe host bridge, used by the "virt" machine type, now supports PCI INTx routing.<br />
<br />
=== Microblaze ===<br />
=== MIPS ===<br />
=== Nios2 ===<br />
=== OpenRISC ===<br />
* Experimental SMP support<br />
=== PowerPC ===<br />
* Several fixes to Mac machine types<br />
* Preliminary work on the Sam460 board<br />
==== pSeries ====<br />
* KVM: support for guest SMT modes<br />
* Several fixes for hotplug logic<br />
<br />
=== s390 ===<br />
* QEMU supports the new --s390-pgste linker option, so that the global vm.allocate_pgste sysctl is not needed anymore when using KVM<br />
* diag288 watchdog support in TCG<br />
* It is now possible to build s390 QEMU without CONFIG_PCI (well, nearly)<br />
* support for virtio-input-ccw and virtio-gpu-ccw<br />
* device_add now works for hotplugging s390x cpus<br />
* netboot sets the DHCP client architecture id to 0x001f (s390 Basic)<br />
* Experimental SMP support under TCG<br />
* support for IDA (indirect addressing) for ccws (base css, virtio-ccw, and 3270)<br />
<br />
==== KVM ====<br />
* Support for extended TOD clock<br />
* We noticed that QEMU is broken since 2.10 with Linux kernels < v3.15 and that nobody complained. We'll not fix but rather clean up based on this new minimum kernel level version if nobody speaks up.<br />
<br />
=== SH ===<br />
=== SPARC ===<br />
* Rework sun4m DMA code to use QEMU's in-built IOMMU/DMA APIs rather than use custom sun4m code<br />
* Implement sunhme (Happy Meal Ethernet) NIC and use it as the default NIC for sun4u<br />
* Update sun4u model to incorporate Simba PCI bridges into PCI topology like a real Ultra 5<br />
=== TileGX ===<br />
=== Tricore ===<br />
=== x86 ===<br />
==== KVM ====<br />
* KVM can advertise Hyper-V frequency MSRs when the TSC frequency is stable and known (either through the tsc_khz option, or by enabling the "invtsc" CPUID feature)<br />
* Support for over 64 VCPUs in Window guests that have Hyper-V enlightenments enabled<br />
==== Xen ====<br />
=== Xtensa ===<br />
=== Device emulation and assignment ===<br />
* Support for vmcoreinfo device to store dump details.<br />
==== ACPI ====<br />
==== Audio ====<br />
==== Block devices ====<br />
* IDE and SCSI devices can report the disk rotation rate<br />
==== Graphics ====<br />
* QXL adds support for chunked cursors.<br />
==== Input devices ====<br />
* virtio-input is now able to REL_WHEEL events.<br />
==== IPMI ====<br />
==== Network devices ====<br />
==== PCI/PCIe ====<br />
* Support for generic PCIe to PCI bridge device pcie-pci-bridge, which supports SHPC and can replace the i82801b11 DMI to PCI bridge.<br />
* PCI bridges can pass information to the firmware regarding reservation of bus numbers, IO space and memory.<br />
==== SCSI ====<br />
* The scsi-block device supports the rerror and werror options.<br />
* Persistent reservation helper: this lets virtual machines send persistent reservations without using CAP_SYS_RAWIO. The helper, which relies on Unix permissions and SCM_RIGHTS to restrict access to raw SCSI device, also supports multipath devices in order to send persistent reservations to all paths.<br />
==== TPM ====<br />
* Support for TPM emulator<br />
==== USB ====<br />
==== VFIO ====<br />
* Experimental support for NVIDIA GPUDirect Cliques<br />
==== virtio ====<br />
==== Xen ====<br />
==== fw_cfg ====<br />
==== 9pfs ====<br />
<br />
=== Character devices ===<br />
=== Crypto subsystem ===<br />
=== GUI ===<br />
* QEMU uses keycodemapdb as the source for mappings between the various scancode, keycode and keysym definitions.<br />
=== Host support ===<br />
* seccomp is enabled on s390x<br />
=== Monitor ===<br />
* "info numa" provides information on hotplugged memory<br />
* New commands "query-memory-size-summary" (QMP) and "info memory_size_summary" (HMP).<br />
* New command "watchdog-set-action" (QMP).<br />
* New option -d to "info mtree" (HMP) to debug the memory API's dispatch tree.<br />
=== Migration ===<br />
* New capability pause-before-switchover (...)<br />
=== Network ===<br />
=== Block devices and tools ===<br />
* The NBD driver supports the structured reply extension.<br />
* New qemu-block-drivers(7) man page<br />
== User-mode emulation ==<br />
<br />
== TCG ==<br />
* Improved code generation through constant pools<br />
* More efficient compilation for SMP guests<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== GIT submodules ===<br />
* When building QEMU directly from a GIT checkout, 'make' will attempt to run 'git' to checkout a number of [[Documentation/GitSubmodules|GIT submodules]], which may have implications for some development environment setups.<br />
<br />
=== Build Dependencies ===<br />
* Optional support for the Capstone disassembler library. Capstone can be compiled from the copy distributed in the QEMU tarballs (or from the submodule when building from git), or the system copy can be used instead.<br />
* Pixman is not anymore available as a submodule and has thus become a hard dependency of QEMU system emulation.<br />
<br />
== Known issues ==<br />
* see [[Planning/2.11]]</div>Dahi