ChangeLog/7.2: Difference between revisions
(→GUI) |
|||
Line 208: | Line 208: | ||
* Dump failing executable on CPU exception | * Dump failing executable on CPU exception | ||
* support for system calls pidfd_open(), pidfd_send_signal() and pidfd_getfd() | |||
* support for FUTEX_WAKE_BITSET and PI futexes | |||
* support for HPPA signal trampoline | |||
* support for madvise(MADV_DONTNEED) on file mappings | |||
=== build === | === build === |
Revision as of 09:18, 30 September 2022
System emulation
Incompatible changes
Consult the 'Removed features' page for details of suggested replacement functionality.
Removal of the "slirp" submodule (affects "-netdev user")
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:
Parameter 'type' expects a netdev backend type
... this might be caused by the missing "user" mode backend. In that case, please install libslirp first ("dnf install libslirp-devel
" on Fedora and "apt-get install libslirp-dev
" on Debian for example), recompile your QEMU with --enable-slirp
, then try again.
Semihosting calls from userspace
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.
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
- The following CPU architecture features are now emulated:
- FEAT_ETS (Enhanced Translation Synchronization)
- FEAT_PMUv3p5 (PMU Extensions v3.5)
- New emulated CPU types:
- Cortex-A35
Machines
AVR
Hexagon
HPPA
LoongArch
Microblaze
MIPS
- deprecated 32 bit big endian host
Nios2
OpenRISC
- Stability improvements
- Performance improvements by supporting MTTCG
- New virt platform is added to assist with CI and device testing
PowerPC
Renesas RX
Renesas SH
RISC-V
ISA and Extensions
- Update [m|h]tinst CSR in interrupt handling
- Force disable extensions if priv spec version does not match
- fix shifts shamt value for rv128c
- move zmmul out of the experimental
- Add checks for supported extension combinations
- Fix typo and restore Pointer Masking functionality for RISC-V
- Add mask agnostic behaviour (rvv_ma_all_1s) for vector extension
- Add Zihintpause support
- Add xicondops in ISA entry
- Use official extension names for AIA CSRs
- Fix the CSR check for cycle{h}, instret{h}, time{h}, hpmcounter3-31{h}
- Improvements to the RISC-V debugger spec
Machines
- virt: pass random seed to fdt
- opentitan: bump opentitan version
- virt machine device tree improvements
- Allow setting the resetvec for the OpenTitan machine
Fixes and Misc
- Upgrade OpenSBI to v1.1
- microchip_pfsoc: fix kernel panics due to missing peripherals
- Remove additional priv version check for mcountinhibit
- Fixup register addresses for Ibex SPI
- Cleanup the RISC-V virt machine documentation
- Remove fixed numbering from GDB xml feature files
s390x
- Fix emulation of LZRF instruction
- Implement Message-Security-Assist Extension 5 (random number generation via PRNO instruction)
- Implement SHA-512 via KIMD/KLMD instructions
- Enhanced zPCI interpretation support for KVM guests
SPARC
Tricore
x86
- Fixes in SSE implementation
- Support for passing a random seed to the Linux kernel when booted with -kernel
Xtensa
Device emulation and assignment
ACPI / SMBIOS
Audio
Block devices
Graphics
I2C
Controllers
Devices
Input devices
IPMI
Multi-process QEMU
Network devices
- Fixed bug that could cause a stack or heap overflow with the emulated "tulip" NIC (CVE-2022-2962)
NVDIMM
NVMe
Emulated NVMe Controller
PCI/PCIe
SCSI
SD card
SMBIOS
TPM
USB
VFIO
virtio
Xen
fw_cfg
9pfs
virtiofs
Semihosting
Audio
Character devices
- UNIX socket support on Windows has been added
Crypto subsystem
Authorization subsystem
GUI
- On macOS systems, the same QEMU binary can include both the Cocoa user interface and the SDL or GTK+ user interfaces.
GDBStub
TCG Plugins
Host support
Memory backends
Migration
Monitor
QMP
HMP
Network
- The "slirp" submodule has been removed from the QEMU source tree. Use libslirp from your OS distribution instead.
Block device backends and tools
Tracing
Semihosting
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.
Miscellaneous
User-mode emulation
- Dump failing executable on CPU exception
- support for system calls pidfd_open(), pidfd_send_signal() and pidfd_getfd()
- support for FUTEX_WAKE_BITSET and PI futexes
- support for HPPA signal trampoline
- support for madvise(MADV_DONTNEED) on file mappings
build
binfmt_misc
Hexagon
LoongArch
Nios2
HPPA
- Increased guest stack to 80MB
- Fix signal handling
- Add vDSO emulation and thus avoid an executable stack
- Changed guest memory layout like on real hppa kernel
x86
- The qemu-i386 and qemu-x86_64 binaries now default to the 'max' CPU model instead of 'qemu32' / 'qemu64'
TCG
ARM
Guest agent
- The "--blacklist" command line option has been renamed to "--block-rpcs".
Build Information
Python
GIT submodules
Container Based Builds
- All containers are now "flat" containers (often generated by lci-tool)
VM Based Builds
Build Dependencies
- Python 3.7 or newer is now required.
Windows
Testing and CI
Known issues
- see Planning/7.2