ChangeLog/10.1: Difference between revisions
Vsementsov (talk | contribs) |
No edit summary |
||
(16 intermediate revisions by 8 users not shown) | |||
Line 16: | Line 16: | ||
=== Arm === | === Arm === | ||
* New CPU architectural features emulated: | |||
** FEAT_SME2 | |||
** FEAT_SME2p1 | |||
** FEAT_SME_B16B16 | |||
** FEAT_SME_F16F16 | |||
** FEAT_SVE_B16B16 | |||
** FEAT_SVE2p1 | |||
* The 'highbank' and 'midway' board models have been deprecated | |||
* New board model 'max78000fthr' (Analog Devices max78000 Cortex-M4 board) | |||
* CXL can now be used on the Arm 'virt' board | |||
* The 'virt' board now supports using KVM nested virtualization via 'virtualization=on' with a sufficiently new host kernel | |||
=== AVR === | === AVR === | ||
Line 44: | Line 57: | ||
* Use tail pseudoinstruction for calling tail | * Use tail pseudoinstruction for calling tail | ||
* Fix some RISC-V vector instruction corner cases | * Fix some RISC-V vector instruction corner cases | ||
* Remove capital 'Z' CPU properties | |||
* Support atomic instruction fetch (Ziccif) | |||
* Add max_satp_mode from host cpu | |||
* Extend and configure PMP region count | |||
* Add a property to set vill bit on reserved usage of vsetvli instruction | |||
* Add Svrsw60t59b extension support | |||
==== Machines ==== | ==== Machines ==== | ||
* Add support for RIMT to virt machine ACPI | * Add support for RIMT to virt machine ACPI | ||
* Improve Microchip Polarfire SoC customization | * Improve Microchip Polarfire SoC customization | ||
* Add Kunminghu CPU and platform | |||
==== Fixes and Misc ==== | ==== Fixes and Misc ==== | ||
Line 56: | Line 76: | ||
* Fix write_misa vs aligned next_pc | * Fix write_misa vs aligned next_pc | ||
* KVM CSR fixes | * KVM CSR fixes | ||
* sstc extension fixes | |||
* Fix zama16b order in isa_edata_arr | |||
* Profile handling fixes | |||
* Extend PMP region up to 64 | |||
* Add missing named features | |||
* Fix PPN field of Translation-reponse register | |||
* Fix fcvt.s.bf16 NaN box checking | |||
* Avoid infinite delay of async xmit function | |||
* Fix missing exit TB flow for ldff_trans | |||
* Fix migration failure when aia is configured as aplic-imsic | |||
* Fix MEPC/SEPC bit masking for IALIGN | |||
=== s390x === | === s390x === | ||
Line 90: | Line 121: | ||
==== Network devices ==== | ==== Network devices ==== | ||
* passt networking backend | |||
==== NVDIMM ==== | ==== NVDIMM ==== | ||
Line 110: | Line 142: | ||
==== VFIO ==== | ==== VFIO ==== | ||
* Initial support for CoCo guest-memfd memory backends | |||
==== virtio ==== | ==== virtio ==== | ||
Line 137: | Line 171: | ||
=== Crypto subsystem === | === Crypto subsystem === | ||
* Use of the built-in AES impl is now removed for anything other than the TCG instruction emulator. Any other use of AES now requires QEMU to be built with one of gcrypt, nettle or gnutls as crypto providers. | |||
=== Authorization subsystem === | === Authorization subsystem === | ||
=== I/O subsystem === | |||
* Most device backends which support TCP connectivity can now support configuration of TCP keepalive parameters | |||
=== GUI === | === GUI === | ||
Line 145: | Line 185: | ||
* vdagent: add migration support | * vdagent: add migration support | ||
* gtk: improve scale handling | * gtk: improve scale handling | ||
* vnc: encoding of updates in non-tight VNC encodings are fixed when the client and server have different endianess | |||
* vnc: encoding of updates in 8/16-bpp is fixed when the client and server have different endianess | |||
* vnc: fix display pause issue after migration | |||
=== GDBStub === | === GDBStub === | ||
* added support for the qGDBServerVersion used by non-gdb clients | |||
=== TCG Plugins === | === TCG Plugins === | ||
* ips plugin has gained configurable scaling and instructions per quantum arguments | |||
* new functions to write register values | |||
* new functions to write to virtual address (see caveats) | |||
* new functions to read/write hardware addresses (see caveats) | |||
* new test plugin called patcher | |||
=== Host support === | === Host support === | ||
Line 160: | Line 210: | ||
* Initial supports of enabling both multifd and postcopy features (multifd is only enabled during precopy so far) | * Initial supports of enabling both multifd and postcopy features (multifd is only enabled during precopy so far) | ||
* Fix VFIO multifd live migration when tcp zerocopy send is enabled | * Fix VFIO multifd live migration when tcp zerocopy send is enabled | ||
* Precopy downtime optimization by avoiding unnecessary LOG_CLEAR operations | |||
=== Monitor === | === Monitor === | ||
Line 170: | Line 221: | ||
=== Network === | === Network === | ||
* QEMU now attempts to arrange for larger buffers when using NBD over Unix sockets, which dramatically improves throughput. On MacOS, this works out of the box; but on Linux, the system administrator must make the following changes: | |||
$ cat /etc/sysctl.d/net-mem-max.conf | |||
net.core.wmem_max = 2097152 | |||
$ sudo sysctl -p /etc/sysctl.d/net-mem-max.conf | |||
=== Block device backends and tools === | === Block device backends and tools === | ||
=== Block jobs === | === Block jobs === | ||
* Non-active '''block-commit''' was optimized to keep sparseness | |||
* '''blockdev-mirror''' was optimized to do less work with zero blocks | |||
* '''blockdev-mirror''' and '''blockdev-backup''' gained new options, see QMP section | |||
=== Tracing === | === Tracing === | ||
Line 225: | Line 284: | ||
Debian bookworm remains a supported platform for QEMU; support for Rust is still considered experimental and not stable, and it is not recommended to be used for anything other than development. | Debian bookworm remains a supported platform for QEMU; support for Rust is still considered experimental and not stable, and it is not recommended to be used for anything other than development. | ||
When Rust is enabled, QEMU now requires Meson 1.8.1. | |||
=== Dependencies === | === Dependencies === | ||
Line 233: | Line 294: | ||
* Support for Debian bullseye has been dropped. | * Support for Debian bullseye has been dropped. | ||
* Ninja 1.9 is now required. This version of Ninja was already found on all supported platforms (including Debian bullseye) as of QEMU 10.0. | * Ninja 1.9 is now required. This version of Ninja was already found on all supported platforms (including Debian bullseye) as of QEMU 10.0. | ||
* Experimental support for compiling to WASM using Emscripten. | |||
=== Windows === | === Windows === |
Latest revision as of 02:27, 16 July 2025
Release schedule: Planning/10.1.
System emulation
Removed features and incompatible changes
Consult the 'Removed features' page for details of suggested replacement functionality.
New deprecated options and features
Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.
68k
Alpha
Arm
- New CPU architectural features emulated:
- FEAT_SME2
- FEAT_SME2p1
- FEAT_SME_B16B16
- FEAT_SME_F16F16
- FEAT_SVE_B16B16
- FEAT_SVE2p1
- The 'highbank' and 'midway' board models have been deprecated
- New board model 'max78000fthr' (Analog Devices max78000 Cortex-M4 board)
- CXL can now be used on the Arm 'virt' board
- The 'virt' board now supports using KVM nested virtualization via 'virtualization=on' with a sufficiently new host kernel
AVR
Hexagon
HPPA
- Fix & improve floating-point exception (FPE) emulation in user- and system-mode
LoongArch
Microblaze
MIPS
OpenRISC
PowerPC
Renesas RX
Renesas SH (sh4)
RISC-V
ISA and Extensions
- Use tail pseudoinstruction for calling tail
- Fix some RISC-V vector instruction corner cases
- Remove capital 'Z' CPU properties
- Support atomic instruction fetch (Ziccif)
- Add max_satp_mode from host cpu
- Extend and configure PMP region count
- Add a property to set vill bit on reserved usage of vsetvli instruction
- Add Svrsw60t59b extension support
Machines
- Add support for RIMT to virt machine ACPI
- Improve Microchip Polarfire SoC customization
- Add Kunminghu CPU and platform
Fixes and Misc
- Don't allow PMP RLB to bypass rule privileges
- Fix checks on writes to pmpcfg in Smepmp MML mode
- Generate strided vector loads/stores with tcg nodes
- Fix endless translation loop on big endian systems
- Fix write_misa vs aligned next_pc
- KVM CSR fixes
- sstc extension fixes
- Fix zama16b order in isa_edata_arr
- Profile handling fixes
- Extend PMP region up to 64
- Add missing named features
- Fix PPN field of Translation-reponse register
- Fix fcvt.s.bf16 NaN box checking
- Avoid infinite delay of async xmit function
- Fix missing exit TB flow for ldff_trans
- Fix migration failure when aia is configured as aplic-imsic
- Fix MEPC/SEPC bit masking for IALIGN
s390x
SPARC
Tricore
x86
KVM
Xtensa
Device emulation and assignment
ACPI / SMBIOS
Audio
Block devices
Graphics
Hyper-V
I2C
Input devices
IPMI
Multi-process QEMU
Network devices
- passt networking backend
NVDIMM
NVMe
PCI/PCIe
SCSI
SD card
SMBIOS
TPM
UFS
USB
VFIO
- Initial support for CoCo guest-memfd memory backends
virtio
vDPA
Xen
fw_cfg
9pfs
- Fixes for file descriptor reclaiming algorithm (i.e. when running towards host's allowed limit of max. open file descriptors).
- Additional fixes on use-after-unlink idiom (i.e. client operations on a file descriptor after file has been removed).
virtiofs
Semihosting
Audio
- alsa: Set "try-poll" to false by default
- add float sample endianness converters
Character devices
Crypto subsystem
- Use of the built-in AES impl is now removed for anything other than the TCG instruction emulator. Any other use of AES now requires QEMU to be built with one of gcrypt, nettle or gnutls as crypto providers.
Authorization subsystem
I/O subsystem
- Most device backends which support TCP connectivity can now support configuration of TCP keepalive parameters
GUI
- spice/dbus: support multi-plane dmabuf
- vdagent: add migration support
- gtk: improve scale handling
- vnc: encoding of updates in non-tight VNC encodings are fixed when the client and server have different endianess
- vnc: encoding of updates in 8/16-bpp is fixed when the client and server have different endianess
- vnc: fix display pause issue after migration
GDBStub
- added support for the qGDBServerVersion used by non-gdb clients
TCG Plugins
- ips plugin has gained configurable scaling and instructions per quantum arguments
- new functions to write register values
- new functions to write to virtual address (see caveats)
- new functions to read/write hardware addresses (see caveats)
- new test plugin called patcher
Host support
Memory backends
Migration
- RDMA live migration starts to support ipv6
- Postcopy preempt mode optimization on sequential memory accesses (e.g. video streaming)
- Initial supports of enabling both multifd and postcopy features (multifd is only enabled during precopy so far)
- Fix VFIO multifd live migration when tcp zerocopy send is enabled
- Precopy downtime optimization by avoiding unnecessary LOG_CLEAR operations
Monitor
QMP
- blockdev-mirror gained a new boolean flag target-is-zero that can be used to optimize mirroring of a sparse file to a destination that already reads as zero. Even without use of this flag, mirroring has been optimized to do less work on portions of the source that read as zero.
- blockdev-backup gained a new option on-cbw-error that allow users to specify how to behave when IO errors occur during copy-before-write operations.
HMP
Network
- QEMU now attempts to arrange for larger buffers when using NBD over Unix sockets, which dramatically improves throughput. On MacOS, this works out of the box; but on Linux, the system administrator must make the following changes:
$ cat /etc/sysctl.d/net-mem-max.conf net.core.wmem_max = 2097152 $ sudo sysctl -p /etc/sysctl.d/net-mem-max.conf
Block device backends and tools
Block jobs
- Non-active block-commit was optimized to keep sparseness
- blockdev-mirror was optimized to do less work with zero blocks
- blockdev-mirror and blockdev-backup gained new options, see QMP section
Tracing
Semihosting
Miscellaneous
User-mode emulation
signals
runtime
binfmt_misc
alpha
arm/arm64/aarch64
HPPA
LoongArch
PowerPC
s390
x86
TCG
LoongArch
Record/Replay
RISC-V
Guest agent
Documentation
Build Information
Process
Rust usage
The minimum supported version of Rust is now 1.77.
- On Debian bookworm, it is available in the rustc-web package except for the mips64el architecture; Rust support for mips64el requires Debian trixie or newer.
- On Ubuntu 22.04 and 24.04, it is available in the rust-1.77 package; the RUSTC and RUSTDOC environment variables must point to /usr/bin/rustc-1.77 and /usr/bin/rustdoc-1.77 respectively.
Debian bookworm remains a supported platform for QEMU; support for Rust is still considered experimental and not stable, and it is not recommended to be used for anything other than development.
When Rust is enabled, QEMU now requires Meson 1.8.1.
Dependencies
Testing and CI
Host support
- Support for Debian bullseye has been dropped.
- Ninja 1.9 is now required. This version of Ninja was already found on all supported platforms (including Debian bullseye) as of QEMU 10.0.
- Experimental support for compiling to WASM using Emscripten.