pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/qemu qemu: updated to 4.2.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/1dc1a2519842
branches:  trunk
changeset: 345658:1dc1a2519842
user:      adam <adam%pkgsrc.org@localhost>
date:      Sun Dec 15 18:35:25 2019 +0000

description:
qemu: updated to 4.2.0

4.2.0:

System emulation
----------------
Incompatible changes
On s390x, using KVM now explicitly requires a host kernel version of at least 3.15 (which includes the 'flic' KVM device). This had been broken since QEMU 2.10 already.
On s390x, migration of KVM guests with >8TB of memory from pre-4.2 QEMUs will no longer work. Migration of KVM guests with up to 8TB of memory continues to work, as will migration of >8TB guests from 
QEMU 4.2 on.
The "autoload" parameter of the "block-dirty-bitmap-add" QMP command has been removed (it's no longer needed).

New deprecated options and features
The "ide-drive" device is deprecated. Users should use 'ide-hd' or "ide-cd" as appropriate to get an IDE hard disk or CD-ROM as needed.
The "change" QMP command has been deprecated. Use "blockdev-change-medium" or "change-vnc-password" instead.
The "migrate_set_downtime", "migrate_set_speed" and "migrate-set-cache-size" QMP commands have been deprecated. Use "migrate-set-parameters" instead.
The "query-migrate-cache-size" QMP command has been deprecated. Use "query-migrate-parameters" instead.
The "scsi-disk" device is deprecated. Users should use 'scsi-hd' or "scsi-cd" as appropriate to get a SCSI hard disk or CD-ROM as needed.
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.

68k
Added new "next-cube" machine for emulating a classic NeXTcube (still incomplete, can only boot to the firmware prompt)
Added new "q800" machine for emulating Macintosh Quadra 800 (can only boot Linux, MacOS ROM is not yet supported)

Arm
Added Aspeed AST2600 SoC and evaluation board model support
QEMU's Arm semihosting implementation now supports v2.0 of the specification, including the "STDOUT_STDERR" and "EXIT_EXTENDED" extensions
We now correctly support more than 256 CPUs when using KVM
The virt board now supports memory hotplugging, when used with a UEFI guest BIOS and ACPI.
The raspberry PI models now implement the bcm2835 system timer device and a dummy thermal sensor.
Performance of the TCG emulation of ARM cores has been improved.
SVE is supported in KVM guests (requires SVE hardware and kernel support)

MIPS
Fixed bug involving emulation of ST.W instruction in system mode only (there was no bug in Linux user mode).

PowerPC
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.
There are now separate machine types for POWER8 based and POWER9 based non-virtualized machines (powernv8 & powernv9).
Default RAM size for powernv machines has been increased to 1.75G which should allow more things to work with the default parameters.
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.
mffsce, mffscrn and mffscrni POWER9 instructions now supported in TCG
powernv machine now includes models for the Homer and OCC SRAM system devices
"info pic" HMP command now reports whether the irq chip is emulated in kernel or in qemu
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
On pseries-4.2 and later machine types, "vsmt" is set to be equal to smp_threads by default (previously it was different in some circumstances for compatibility with old KVM versions)
New defaults mean that with the pseries machine type and host kernels prior to 4.13 you may get errors about VSMT mode. You can either update your host kernel or work around this by setting -machine 
vsmt=8.

RISC-V
The `-initrd` argument is now supported.
The debugger can now see all architectural state regardless of the currently executing privilege mode on each hart.
The sifive_u board now contains additional memory regions that more closely match the board.

s390
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").

SPARC
The sun4u IOMMU now support the "invert endianness" bit

x86
VMX features can be enabled/disabled via the "-cpu" flag.
When nested virtualization is enabled with an option like "-cpu Haswell,+vmx", the set of VMX features will also be constrained to what was available on the corresponding CPU model.
New "microvm" machine type that has virtio-mmio instead of PCI, and no ACPI support (so no hotplug too). The new machine type is meant as a baseline for performance optimizations of QEMU, firmware 
and guests. While inspired by Firecracker it is not entirely compatible with it (for example it does not have Firecracker's userspace IP stack and MicroVM Metadata Service).
Support for AVX512 BFloat16 extensions.
New CPU models: Denverton (a server-class Atom-based SoC), Snowridge, Dhyana
New CPU features clzero and xsaveerptr
Latest version of all CPU models now have TSX (HLE and RTM) disabled by default
Support for new IA32_ARCH_CAPABILITIES flags: MDS_NO, TSX_NO, TSX_CTRL
macOS Hypervisor.framework support ("-accel hvf") is now considered stable

Xtensa
Add new "virt" machine.


Device emulation and assignment

ACPI
ARM machines can use the ACPI generic event device for the system powerdown event

Audio
Audio devices support an "audiodev" property that can be used to choose a specific backend to connect to the device.

Block devices
Unmap operations are now accounted and visible in the output of "query-blockstats"/"info blockstats"

Graphics
Support for more ati-vga registers

IPMI
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. To set the UUID of a BMC, use the new property guid=11223344-5566-7788-99aa-bbccddeeff00 for 
the ipmi-bmc-sim device.
New PCI interfaces for IPMI KCS and BT devices are available. The devices pci-ipmi-kcs and pci-ipmi-bt are used to choose these devices.

Network devices
Support for network failover for easier migration of VFIO devices.

VFIO
vfio-pci supports the "failover_pair_id" property for easier migration of VFIO devices.

virtio
virtio-mmio now supports the virtio standard compatible v2 personality (still defaulting to the legacy v1 personality for compatibility reasons)
Support for virtio 1.1 packed virtqueues.

9pfs
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)


Character devices
Any backend that supports connection as a socket client (NBD, chardev, network device, monitor...) can now request to use TCP keep-alive with the server.

Crypto subsystem
With new enough gcrypt or nettle libraries, QEMU can now use the library's own XTS cipher mode code. This provides a potentially huge performance boost for AES-XTS encryption, which benefits the LUKS 
disk encryption block driver I/O performance.

Monitor
Fix not to leave the monitor wedged when the client disconnects while the queue is full, and the event timing is unlucky.

QMP
query-machines now report the default CPU type for each machine

Migration
The 'validate-uuid' migration compatibility checks the UUID matches on migration, preventing accidental migration of the wrong VM to the wrong destination. (Yury Kotov)

Network
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.

Block device backends and tools
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.
The LUKS block driver supports falloc/full preallocation.
The NBD server now advertises NBD_FLAG_CAN_MULTI_CONN on shared readonly connections.
The NBD server and client support the new NBD_CMD_FLAG_FAST_ZERO as an optimization during the copying of sparse images.
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.
Several assertion failures relating to the use of an NBD server with iothreads have been fixed.
Creation of an NBD client now allows an optional 'reconnect-delay' parameter, which can be used to reconnect rather than permanently fail in the face of a transient server hiccup.
NBD client and server now permit export names up to 4k in length (rather than 256 bytes), while at the same time being more careful to avoid over-long strings in violation of the NBD protocol.

Miscellaneous
bugs in gdbstub handling of F and ! packets have been fixed
The arguments to -kernel and -initrd are now mmap-ed for some targets. This allows sharing memory when many VMs are loaded with the same arguments.
User-mode emulation

Xtensa
call0 ABI may be selected for the user emulation with command line option -xtensa-abi-call0 (or with QEMU_XTENSA_ABI_CALL0 environment variable).

TCG
---
tcg tests are now in $BUILDDIR/tests/tcg/$TARGET/ (rather than $BUILDDIR/$TARGET/tests/)
new TCG Plugins feature allows instrumentation experiments to be written

Build Information
-----------------
Python
The minimum supported version of Python is now 3.5.

Container Based Builds
The docker.py tooling now supports podman containers [1] as an alternative to docker
the docker.py now requires python3 to run
a number of the cross compiler containers have been updated to Buster

Build Dependencies
The minimum version of the glib library is now 2.48

diffstat:

 emulators/qemu/Makefile                           |   5 ++---
 emulators/qemu/PLIST                              |   6 ++++--
 emulators/qemu/distinfo                           |  16 ++++++++--------
 emulators/qemu/patches/patch-audio_audio.c        |  16 ----------------
 emulators/qemu/patches/patch-include_sysemu_kvm.h |   8 ++++----
 emulators/qemu/patches/patch-net_tap-solaris.c    |   6 +++---
 6 files changed, 21 insertions(+), 36 deletions(-)

diffs (152 lines):

diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/Makefile
--- a/emulators/qemu/Makefile   Sun Dec 15 18:34:18 2019 +0000
+++ b/emulators/qemu/Makefile   Sun Dec 15 18:35:25 2019 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.221 2019/12/11 16:44:22 jperkin Exp $
+# $NetBSD: Makefile,v 1.222 2019/12/15 18:35:25 adam Exp $
 
-DISTNAME=      qemu-4.1.0
-PKGREVISION=   2
+DISTNAME=      qemu-4.2.0
 CATEGORIES=    emulators
 MASTER_SITES=  https://download.qemu.org/
 EXTRACT_SUFX=  .tar.xz
diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/PLIST
--- a/emulators/qemu/PLIST      Sun Dec 15 18:34:18 2019 +0000
+++ b/emulators/qemu/PLIST      Sun Dec 15 18:35:25 2019 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.62 2019/10/24 18:22:00 adam Exp $
+@comment $NetBSD: PLIST,v 1.63 2019/12/15 18:35:25 adam Exp $
 bin/elf2dmp
 ${PLIST.ivshmem}bin/ivshmem-client
 ${PLIST.ivshmem}bin/ivshmem-server
@@ -93,6 +93,7 @@
 share/doc/qemu/interop/live-block-operations.html
 share/doc/qemu/interop/objects.inv
 share/doc/qemu/interop/pr-helper.html
+share/doc/qemu/interop/qemu-ga.html
 share/doc/qemu/interop/search.html
 share/doc/qemu/interop/searchindex.js
 share/doc/qemu/interop/vhost-user-gpu.html
@@ -103,6 +104,7 @@
 share/doc/qemu/qemu-ga-ref.txt
 share/doc/qemu/qemu-qmp-ref.html
 share/doc/qemu/qemu-qmp-ref.txt
+share/doc/qemu/specs/acpi_hw_reduced_hotplug.html
 share/doc/qemu/specs/genindex.html
 share/doc/qemu/specs/index.html
 share/doc/qemu/specs/objects.inv
@@ -131,6 +133,7 @@
 share/qemu/QEMU,tcx.bin
 share/qemu/bamboo.dtb
 share/qemu/bios-256k.bin
+share/qemu/bios-microvm.bin
 share/qemu/bios.bin
 share/qemu/canyonlands.dtb
 share/qemu/edk2-aarch64-code.fd
@@ -219,7 +222,6 @@
 share/qemu/sgabios.bin
 share/qemu/skiboot.lid
 share/qemu/slof.bin
-share/qemu/spapr-rtas.bin
 share/qemu/trace-events-all
 share/qemu/u-boot-sam460-20100605.bin
 share/qemu/u-boot.e500
diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/distinfo
--- a/emulators/qemu/distinfo   Sun Dec 15 18:34:18 2019 +0000
+++ b/emulators/qemu/distinfo   Sun Dec 15 18:35:25 2019 +0000
@@ -1,12 +1,11 @@
-$NetBSD: distinfo,v 1.152 2019/12/11 16:44:22 jperkin Exp $
+$NetBSD: distinfo,v 1.153 2019/12/15 18:35:25 adam Exp $
 
-SHA1 (qemu-4.1.0.tar.xz) = 29c99be326cd8f3b2b75d7fec9066ca24854df1e
-RMD160 (qemu-4.1.0.tar.xz) = 7f95536777579cec1793c894089a2f72bb7f09d8
-SHA512 (qemu-4.1.0.tar.xz) = 82fd51702a7b9b1b00b2f1bd3b4a832b80249018dbba1add0b0a73e7d4bee452afd45574b4d8df7ce4477d8711f3bda4ca072a1a6de25895c93eb21cf78fc4b2
-Size (qemu-4.1.0.tar.xz) = 54001708 bytes
+SHA1 (qemu-4.2.0.tar.xz) = b27aa828a8457bd8551ae3c81b80cc365e1f6bfe
+RMD160 (qemu-4.2.0.tar.xz) = cab8f6d85c0c6e9c01059087ed27d1243a7004a4
+SHA512 (qemu-4.2.0.tar.xz) = 2a79973c2b07c53e8c57a808ea8add7b6b2cbca96488ed5d4b669ead8c9318907dec2b6109f180fc8ca8f04c0f73a56e82b3a527b5626b799d7e849f2474ec56
+Size (qemu-4.2.0.tar.xz) = 62222068 bytes
 SHA1 (patch-Makefile) = 85d24d842ad2f7e1e2ec6f0e0e3268c21ef9bf0d
 SHA1 (patch-accel_tcg_user-exec.c) = 86ee62f6e5c8cd7942cf0aa9c9f64e4b0879ff33
-SHA1 (patch-audio_audio.c) = 98a1de2fd48638886b5d16f6a61dc72910e98b41
 SHA1 (patch-capstone_Makefile) = f59870031de8c4385a591362749ec82f57fd4c27
 SHA1 (patch-configure) = 14c09363622bcee113b7fda5bd3f031bd9ff6b90
 SHA1 (patch-contrib_ivshmem-client_ivshmem-client.c) = 40c8751607cbf66a37e4c4e08f2664b864e2e984
@@ -17,8 +16,9 @@
 SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7
 SHA1 (patch-hw_tpm_tpm__ioctl.h) = a350c1708e1f9d85e07c4c354068703a45174baf
 SHA1 (patch-hw_usb_dev-mtp.c) = 0f9034fb3904e5d5e3b98d24b94e054181687d95
-SHA1 (patch-include_sysemu_kvm.h) = f99e8ad021f6c8e89e3ca52538bd9b0656e6f619
-SHA1 (patch-net_tap-solaris.c) = 74f27ae747e1ebcd37f8f1f50ddacf2be5f7ee46
+SHA1 (patch-include_sysemu_kvm.h) = 9847abe3be70bd708a521310f5d5515e45a1a5a0
+SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5
+SHA1 (patch-qemu-doc.texi) = 78f926a16494c07248b9a81f39dca5b78ae542bb
 SHA1 (patch-roms_u-boot_tools_imx8m__image.sh) = e4c452062f40569e33aa93eec4a65bd3af2e74fc
 SHA1 (patch-target_i386_kvm-stub.c) = 4cd2b7a8d8d8a317829f982b5acff7fdf2479d9f
 SHA1 (patch-util_drm.c) = b30a46d623d9431c5af2f3cd101adb89be3f0c2b
diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/patches/patch-audio_audio.c
--- a/emulators/qemu/patches/patch-audio_audio.c        Sun Dec 15 18:34:18 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-$NetBSD: patch-audio_audio.c,v 1.1 2017/12/14 08:01:10 adam Exp $
-
-Avoid conflicts with SSP read() macro in NetBSD's <ssp/unistd.h>
-(PR lib/43832: ssp causes common names to be defines)
-
---- audio/audio.c.orig 2016-09-02 15:34:17.000000000 +0000
-+++ audio/audio.c
-@@ -1156,7 +1156,7 @@ int AUD_read (SWVoiceIn *sw, void *buf, 
-         return 0;
-     }
- 
--    return sw->hw->pcm_ops->read(sw, buf, size);
-+    return (sw->hw->pcm_ops->read)(sw, buf, size);
- }
- 
- int AUD_get_buffer_size_out (SWVoiceOut *sw)
diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/patches/patch-include_sysemu_kvm.h
--- a/emulators/qemu/patches/patch-include_sysemu_kvm.h Sun Dec 15 18:34:18 2019 +0000
+++ b/emulators/qemu/patches/patch-include_sysemu_kvm.h Sun Dec 15 18:35:25 2019 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-include_sysemu_kvm.h,v 1.1 2019/02/13 05:16:12 kamil Exp $
+$NetBSD: patch-include_sysemu_kvm.h,v 1.2 2019/12/15 18:35:25 adam Exp $
 
 Fix debug build on NetBSD (without Linux-KVM).
 
---- include/sysemu/kvm.h.orig  2019-02-02 13:14:03.877852089 +0000
+--- include/sysemu/kvm.h.orig  2019-12-12 18:20:48.000000000 +0000
 +++ include/sysemu/kvm.h
-@@ -459,8 +459,16 @@ int kvm_vm_check_extension(KVMState *s, 
+@@ -465,8 +465,16 @@ int kvm_vm_check_extension(KVMState *s, 
          kvm_vcpu_ioctl(cpu, KVM_ENABLE_CAP, &cap);                   \
      })
  
@@ -18,6 +18,6 @@
 +        0;                                                           \
 +    })
 +#endif
- uint32_t kvm_arch_get_supported_msr_feature(KVMState *s, uint32_t index);
+ uint64_t kvm_arch_get_supported_msr_feature(KVMState *s, uint32_t index);
  
  
diff -r fd4d6f1aaf3b -r 1dc1a2519842 emulators/qemu/patches/patch-net_tap-solaris.c
--- a/emulators/qemu/patches/patch-net_tap-solaris.c    Sun Dec 15 18:34:18 2019 +0000
+++ b/emulators/qemu/patches/patch-net_tap-solaris.c    Sun Dec 15 18:35:25 2019 +0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-net_tap-solaris.c,v 1.1 2019/12/11 16:44:22 jperkin Exp $
+$NetBSD: patch-net_tap-solaris.c,v 1.2 2019/12/15 18:35:25 adam Exp $
 
 Requires qemu-common.h.
 
---- net/tap-solaris.c.orig     2019-08-15 19:01:42.000000000 +0000
+--- net/tap-solaris.c.orig     2019-12-12 18:20:48.000000000 +0000
 +++ net/tap-solaris.c
 @@ -23,6 +23,7 @@
   */
@@ -11,4 +11,4 @@
 +#include "qemu-common.h"
  #include "qapi/error.h"
  #include "tap_int.h"
- #include "sysemu/sysemu.h"
+ #include "qemu/ctype.h"



Home | Main Index | Thread Index | Old Index