Subject: CVS commit: pkgsrc/emulators/qemu
From: Ryo ONODERA
Date: 2016-09-04 11:21:04
Message id: 20160904092104.532E2FBC3@cvs.NetBSD.org

Log Message:
Update to 2.7.0

Changelog:
System emulation
Incompatible changes

    SPI flash devices "160s33b", "320s33b", \ 
"640s33b", "at25df041a", "at25df321a", \ 
"at25df641", "at25fs010", "at25fs040", \ 
"at26df081a", "at26df161a", "at26df321", \ 
"at26f004", "at45db081d", "en25f32", \ 
"en25p32", "en25p64", "en25q32b", \ 
"en25q64", "gd25q32", "gd25q64", \ 
"m25p05", "m25p10", "m25p128", "m25p16", \ 
"m25p20", "m25p32", "m25p40", "m25p64", \ 
"m25p80", "m25pe16", "m25pe20", \ 
"m25pe80", "m25px32", "m25px32-s0", \ 
"m25px32-s1", "m25px64", "m45pe10", \ 
"m45pe16", "m45pe80", "mx25l12805d", \ 
"mx25l12855e", "mx25l1606e", "mx25l2005a", \ 
"mx25l25635e", "mx25l25655e", "mx25l3205d", \ 
"mx25l4005a", "mx25l6405d", "mx25l8005", \ 
"n25q032", "n25q032a11", "n25q032a13", \ 
"n25q064", "n25q064a11", "n25q064a13", \ 
"n25q128", "n25q128a11", "n25q128a13", \ 
"n25q256a11", "n25q256a13", "s25fl016k", \ 
"s25fl064k", "s25fl129p0", "s25fl129p1", \ 
"s25fl256s0", "s25fl256s1", "s25fl512s", \ 
"s25sl004a", "s25sl008a", "s25sl016a", \ 
"s25sl032a", "s25sl032p", "s25sl064a", \ 
"s25sl064p", "s25sl12800", "s25sl12801", \ 
"s70fl01gs", "
sst25vf016b", "sst25vf032b", "sst25vf040b", \ 
"sst25vf080b", "sst25wf010", "sst25wf020", \ 
"sst25wf040", "sst25wf512", "w25q256", \ 
"w25q32", "w25q32dw", "w25q64", \ 
"w25q80", "w25q80bl", "w25x10", \ 
"w25x16", "w25x20", "w25x32", "w25x40", \ 
"w25x64", "w25x80" connect to a backend explicitly named by \ 
a "drive" property instead of an implicit -drive if=mtd. This only \ 
affect devices created explicitly with -device; "-drive if=mtd" still \ 
works for SPI flash devices created by boards, so this should affect almost no \ 
one.
    Support for the original qcow2 image encryption has been disabled entirely \ 
from the system emulators. While QEMU 2.3 attempted to keep it available in \ 
system emulators, a bug in the code has actually broken it since 2.4, and no one \ 
complained. Supported for the format remains available only in command line \ 
tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is \ 
recommended to use 'qemu-img convert' to convert qcow2 encrypted images to \ 
uncrypted ones. The new LUKS encryption driver can provide a secure replacement, \ 
and a future release may integrate luks into qcow2 natively.
    Autoconverge is not considered experimental anymore; autoconverge-related \ 
commands do not have the "x-" prefix anymore.
    The MIPS64R6-generic CPU model was renamed to I6400.
    On Q35 machines, IOMMU are now enabled with "-device iommu" \ 
instead of "-machine iommu=on".

Future incompatible changes

    Three options are using different names on the command line and in \ 
configuration file. In particular:
        The "acpi" configuration file section matches command-line \ 
option "acpitable";
        The "boot-opts" configuration file section matches \ 
command-line option "boot";
        The "smp-opts" configuration file section matches command-line \ 
option "smp".

    -readconfig will standardize on the name for the command line option.

    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.
    Devices "allwinner-a10", "pc87312", "ssi-sd" \ 
will be configured with explicit properties instead of implicitly. This is \ 
unlikely to affect users.
    QMP command blockdev-add is still a work in progress. It doesn't support all \ 
block drivers, it lacks a matching blockdev-del, and more. It might change \ 
incompatibly.

ARM

    The "virt" machine type has support for NUMA.
    We now implement an emulated GICv3 interrupt controller, which is supported \ 
by the "virt" board and can be enabled with "-machine \ 
gic-version=3". Note that many guest OSes do not correctly support a GICv3 \ 
without security extensions; if your guest is Linux it must include commit \ 
7c9b973061 "irqchip/gic-v3: Configure all interrupts as non-secure \ 
Group-1" or a backport of that patch to one of the stable branches. UEFI \ 
and FreeBSD are also known to need similar bug fixes.With a GICv3 the \ 
"virt" board now supports TCG (emulated CPU) configurations with more \ 
than 8 vCPUs.
    New Xilinx Zynq ZCU102 board (-M xlnx-zcu102).
    Xilinx Zynq boards have experimental support for ARM Security Extensions.
    Xilinx Zynq MP supports DisplayPort (graphics and audio) and DDC (used for \ 
EDID info).
    i.MX6?

KVM

    Xilinx Zynq boards support KVM on AArch64 hosts.

MIPS

    Support for 10-bit ASIDs
    The MIPS64R6-generic CPU model was renamed to I6400.
    Initial GIC support
    Support for IEE 754-2008

PowerPC

    Many TCG fixes.
    mac99 machine can now boot MacOS >= 9.1

pSeries

    Significant performance improvements for the spapr-llan device.
    Support for CPU hotplug.
    Performance improvements for VFIO through dynamic DMA windows.

s390

    Support for runtime instrumentation
    The IPL firmware can boot from devices in subchannel sets > 0
    Major refactoring and improvements of the s390x-specific PCI code
        Optionally, zPCI specific 'uid' and 'fid' attributes may be provided
        Guest-acknowledged hotunplug (rather than 'surprise removal' only)
    bootindex support for IPL from SCSI devices

SPARC

    Fix for sun4m Solaris 9 "Segmentation fault" regression (see bug \ 
#1588328)

x86

    CPU hot-remove support based on generic device_add/device_del interface
        support arbitrary CPU adding/removal
        Limitation: 1st (boot) CPU isn't removable

KVM

    Support for LMCE (local MCE) virtualization, which will require Linux 4.8. \ 
LMCE can be enabled through "-cpu model,lmce" on all CPUs as long as \ 
the kernel supports it.

Device emulation and assignment
ACPI

    NVDIMM devices are now described in the ACPI tables and support labels.
    new ACPI CPU hotplug MMIO interface since 2.7 machine types for PC/Q35
        more than 255 CPUs support
        CPU hot-remove support
        Guest side CPU hotplug status notification via _OST events

Block devices

    Removed dataplane blockers? (Fam)
    New -device properties replacing -drive properties?
    virtio-blk now supports multiqueue through a "num-queues" device \ 
property.

Network devices

    New device e1000e for Intel 82574 NIC.
    QEMU now includes iPXE ROMs for vmxnet3 devices.

SCSI

    scsi-block now passes sense data correctly to the guest, so that it can \ 
support for example persistent reservations.
    Support for passthrough of SCSI scanner.

PCI/PCIe

    On Q35 machines, IOMMU are now enabled with "-device iommu" \ 
instead of "-machine iommu=on".

USB

    Support for Xen paravirtualized USB
    usb-bot and usb-uas now support hotplug.

VFIO

    Support for device assignment of Intel integrated graphics devices.
    The SR-IOV capability is now hidden to guests when passing through a \ 
physical function.

virtio

    Initial reconnect support for vhost-user.
    Support for busy polling on vhost-net devices ("-netdev \ 
tap,...,poll-us=n").
    virtio-gpu multi-monitor fixes
    virtio-gpu 2d live migration support

Character devices

    QEMU for Windows: Fixed handling of files used for character devices – \ 
they are now truncated by default like on Linux.

TLS support

    Support for overriding the TLS property, for example "-object \ 
tls-creds-x509,...,priority=NORMAL:-VERS-SSL3.0" disables SSL 3.0. This can \ 
be used both to use a non-standard weaker set of prioririties, or to enforce a \ 
stronger default for QEMU. The default priority can also be specified through \ 
"--tls-priority=VALUE" at configure time.

GUI

    A new option "-machine graphics=on|off" lets you disable graphics \ 
in the VM like "-nographic" (e.g. OpenBIOS will use the serial port \ 
for boot messages) but without an implicit "-display none".

Monitor

    new 'info hotpluggable-cpus' and corresponding 'query-hotpluggable-cpus' QMP \ 
commands
    to list present/possible CPUs with properties necessary to add a CPU \ 
instance using device_add for a given '-smp ...' layout
        supported by x86 and SPAPR softmmu targets

Migration

    Autoconverge is not considered experimental anymore. Autoconverge-related \ 
commands do not have the "x-" prefix.
    TODO: TLS support

Network

    User-mode networking supports DHCPv6, RDNSS, DNS6 and link-local DNS addresses.
    Socket networking in TCP mode can now run over IPv6. UDP and multicast modes \ 
do not support IPv6 yet.

Block devices and tools

    New "bench" command in qemu-img .
    The "write" command in qemu-io grew "-f" and "-z \ 
-u" options.
    TODO: Block job ids?

TCG

    Speed improvements around 20%.
    Fixes for self-modifying code.

Tracing

    TODO: dfilter
    TODO: tracing for qemu-io, qemu-img and qemu-nbd

CLI options

    '-cpu cpu-model,feat1=foo,...' acts as a set of '-global \ 
cpu-model-type.feat1=foo' options, which affects initial CPUs as well as all \ 
CPUs created with help of -device/device_add/cpu-add for a given cpu-model
        doesn't apply to SPARC target which uses legacy -cpu semantics as its \ 
features haven't been converted to properties.

Files:
RevisionActionfile
1.154modifypkgsrc/emulators/qemu/Makefile
1.47modifypkgsrc/emulators/qemu/PLIST
1.117modifypkgsrc/emulators/qemu/distinfo
1.2modifypkgsrc/emulators/qemu/patches/patch-Makefile.objs
1.14modifypkgsrc/emulators/qemu/patches/patch-configure
1.8modifypkgsrc/emulators/qemu/patches/patch-ef
1.1addpkgsrc/emulators/qemu/patches/patch-scripts_qemu-binfmt-conf.sh
1.1addpkgsrc/emulators/qemu/patches/patch-tests_Makefile.include
1.3removepkgsrc/emulators/qemu/patches/patch-tests_Makefile