ChangeLog/6.0: Difference between revisions

From QEMU
Line 217: Line 217:


Added support for the Qualcomm Hexagon processor, in linux-user mode only.
Added support for the Qualcomm Hexagon processor, in linux-user mode only.
For more information, see [https://www.youtube.com/watch?v=3EpnTYBOXCI our presenation from the 2019 KVM Forum]
or the [https://github.com/qemu/qemu/blob/master/target/hexagon/README README] file


== TCG ==
== TCG ==

Revision as of 17:04, 21 February 2021

System emulation

Incompatible changes

  • The deprecated pc-1.0, pc-1.1, pc-1.2 and pc-1.3 machine types have been removed (they likely could not be used for live migration from old QEMU versions anymore anyway). Use a newer pc-i440fx-... machine type instead.
  • The change QMP command has been removed. Use blockdev-change-medium or change-vnc-password instead.
  • The -show-cursor option has been removed. Use -display sdl,show-cursor=on instead.
  • The -realtime option has been removed. Use -overcommit mem-lock=on|off' instead.
  • The -tb-size option has been removed. Use -accel tcg,tb-size=... instead.
  • The configure script --enable/disable-git-update args have been replaced with --with-git-submodules

New deprecated options and features

Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for the full list of historically deprecated features/options.

  • The --enable-fips option has been deprecated. Consumers wishing to have FIPS compliance must build QEMU with libcrypt and gnutls, NOT nettle.

68k

Alpha

Arm

  • QEMU now supports emulation of the Arm-v8.1M architecture and the Cortex-M55 CPU
  • Emulation of the ARMv8.4-TTST extension is now supported
  • Emulation of the ARMv8.4-SEL2 extension is now supported
  • Emulation of the PAuth extension now supports an optional IMPDEF pauth algorithm which is not cryptographically secure but is much faster to compute
  • Emulation of the ARMv8.4-DIT extension is now supported. (Note that QEMU's implementation does not in fact provide any timing guarantees; emulation of the extension is purely to support guests which query its presence and work with the PSTATE.DIT bit.)
  • Emulation of the ARMv8.5-MemTag extension is now supported for linux-user. (It was already supported for system emulation.)
  • xlnx-zynqmp boards now support the Xilinx ZynqMP CAN controllers
  • the sbsa-ref board now supports Cortex-A53/57/72 cpus
  • the xlnx-versal board now has USB support
  • the sabrelite board emulation has been improved and it can now run U-Boot
  • the npcm7xx boards support more devices: ADC, PWM, SMBus
  • the gdbstub's representation of SVE registers allows GDB to properly handle aliasing
  • the 'virt' board now provides a mechanism for secure (EL3) firmware to power down or reset the system
  • documentation for vexpress/versatile has been updated with example kernel configuration/command lines

AVR

HPPA

Microblaze

MIPS

  • Loongson-3 "virt" machine added

Nios2

OpenRISC

PowerPC

  • Deprecated 'compat' property of server class POWER cpus removed (use the 'max-cpu-compat' machine option instead)
  • You can now explicitly choose 'kvm_type=auto' rather than only being able to do that by not setting it at all.
  • powernv machine type now defaults to 1GiB of RAM
  • powernv now allows an external BMC

Renesas RX

Renesas SH

RISC-V

  • Improve the sifive_u DTB generation
  • Add QSPI NOR flash to Microchip PFSoC
  • Fix a bug in the Hypervisor HLVX/HLV/HSV instructions
  • Fix some mstatus mask defines
  • Ibex PLIC improvements
  • OpenTitan memory layout update (Breaking change)
  • Initial steps towards support for 32-bit CPUs on 64-bit builds
  • Automate GDB XML generation (should fix GDB E14 errors)
  • Sifive OTP handle OTP access failures
  • Correctly generate a PMP failure when no PMP entry is configured
  • Fix 32-bit Linux boot problems with DTB placement

s390

  • Linux kernels built with clang-11 and clang-12 now work correctly under tcg

SPARC

TileGX

Tricore

x86

  • TCG can emulate the PKS feature (protection keys for supervisor pages).
  • Intel PT can now be exposed to KVM guests when CPUID.(EAX=14,ECX=0).ECX[LIP] (bit 31) is 1. Previous versions only supported Intel PT when LIP=0
  • New sev-inject-launch-secret QMP command
  • The WHPX accelerator supports accelerated APIC ("-accel whpx,kernel-irqchip=on")
  • The microvm machine type got a second (optional) ioapic for the virtio-mmio irq lines, which in turn allows 24 (instead of 8) virtio-mmio devices.
  • Support for running SEV-ES encrypted guests.

Xtensa

Device emulation and assignment

ACPI

Audio

Block devices

Graphics

Input devices

IPMI

Multi-process QEMU

  • The experimental -machine x-remote and -device x-pci-proxy-dev options have been added to support out-of-process device emulation. Currently only the lsi53c895 SCSI device can be emulated in a separate process. Please see the documentation and Features/MultiProcessQEMU for details on this experimental feature, which is still subject to change.

Network devices

NVDIMM

  • nvdimm devices will check that -device nvdimm,unarmed=on option is used when using -object memory-backend-file,readonly=on

NVMe

PCI/PCIe

  • The 'pvpanic-pci' device is a PCI-device version of the 'pvpanic' ISA device, which can be used on systems with only PCI and no ISA bus as a mechanism for the guest to inform QEMU that it has paniced.

SCSI

SD card

SMBIOS

TPM

USB

  • Support for writing usb traffic to package capture files for inspection with wireshark has been added. Use the new pcap=<file> property added to all usb devices to enable this.

VFIO

virtio

Xen

fw_cfg

9pfs

virtiofs

  • Security fix for CVE-2020-35517 - prevent opening of special files
  • Performance improvements with new guest kernel feature FUSE_KILLPRIV_V2

Semihosting

  • Added support for RiscV (ARM style semihosting)
  • Added support for HEAPINFO, ELAPSED, TICKFREQ, TMPNAM and ISERROR to semihosting

Audio

Character devices

Crypto subsystem

experimental qmp interface

GUI

  • vnc: support for cursors with alpha channel has been added.
  • vnc: support for extended desktop resize has been added. With virtio-vga the guest display should adapt to vnc client window resizes.

GDBStub

  • the stub now supports the Xfer:auxv:read for Linux user guests
  • the GDB stubs now uses the "official" gdb representation for SVE registers

TCG Plugins

  • New API for querying details about HW access
  • Bug fix to avoid double counting some instructions when using -icount

Host support

Memory backends

  • hostmem-file: added readonly=on|off option

Migration

  • New feature (experimental): Background RAM snapshot from Andrey Gruzdev; using the Linux UFFD-WP feature, enabling fixed size snapshots even with busy guests
  • QMP native snapshot commands -snapshot-{save,load,delete}
  • query/info-migrate now display the migration blocker status and the reasons for blocking.

Monitor

QMP

  • A new command set-action has been introduced. The command generalizes watchdog-set-action and allows changes to all the settings of the (also new) -action command line option.
  • New OOB commands yank and query-yank have been introduced. The yank command allows to recover from a hanging QEMU by shutting down sockets for example. See the QMP documentation for more information. The query-yank command lists the available things to yank.
  • The new QMP commands load-snapshot, save-snapshot and delete-snapshot provide a mechanism for managing internal qcow2 snapshots, that was previously only available via HMP commands loadvm, savevm and delvm
  • The block-bitmap-mapping parameter within the QMP command migrate-set-parameters gained a transform member for adjusting the persistence of a bitmap on the destination.

HMP

Network

Block device backends and tools

  • For its background operation, the backup job now runs multiple asynchronous requests in parallel
  • The stream block job now uses the copy-on-read block driver (and its new bottom option) to let copy-on-read help make progress even when using any of block-stream’s base, base-node, or bottom options
  • The new QMP commands load-snapshot, save-snapshot and delete-snapshot provide a mechanism for managing internal qcow2 snapshots, that was previously only available via HMP commands loadvm, savevm and delvm
  • When qemu operates as an NBD server that will service multiple clients (whether via QMP nbd-server-start, qemu-storage-daemon, or qemu-nbd), it now allows a larger backlog of pending clients. When using a Unix socket, this avoids a client failing to connect due to EAGAIN.
  • qemu-nbd --shared=0 now works to allow an unlimited number of shared clients to a single NBD server.

Tracing

Miscellaneous

  • A new command line option -action, with suboptions panic, shutdown, reboot and watchdog. -action subsumes the pre-existing options -no-shutdown (-action panic=pause,shutdown=pause), -no-reboot (-action reboot=shutdown) and -watchdog-action; plus, it allows the user to choose whether guest panic should pause the guest (-action panic=pause), shut it down (-action panic=poweroff, the default) or be ignored (-action panic=none).
  • A new generic machine option confidential-guest-support was added to (partially) unify configuration for AMD SEV memory encrypt, POWER PEF and s390 Protected Virtualization, plus future methods of protecting a guest from eavesdropping by a compromised hypervisor.

User-mode emulation

Hexagon

Added support for the Qualcomm Hexagon processor, in linux-user mode only.

For more information, see our presenation from the 2019 KVM Forum or the README file

TCG

  • Added support for Apple Silicon hosts (macOS)

Guest agent

Build Information

  • Support for building with link-time optimization or with LLVM control-flow integrity
  • New "gtags" build target for developers
  • checkpatch now better handles commit ids when checking

Python

GIT submodules

Container Based Builds

  • handling of binfmt_misc containers has improved the handling of dynamically linked binaries pointing at symlinks

Build Dependencies

Windows

Testing and CI

  • shippable support has been removed
  • more testing has been migrated from Travis to GitLab

Known issues