head 1.35;
access;
symbols
pkgsrc-2021Q3:1.34.0.2
pkgsrc-2021Q3-base:1.34
pkgsrc-2021Q2:1.32.0.2
pkgsrc-2021Q2-base:1.32
pkgsrc-2021Q1:1.31.0.2
pkgsrc-2021Q1-base:1.31
pkgsrc-2020Q4:1.29.0.4
pkgsrc-2020Q4-base:1.29
pkgsrc-2020Q3:1.29.0.2
pkgsrc-2020Q3-base:1.29
pkgsrc-2020Q2:1.28.0.2
pkgsrc-2020Q2-base:1.28
pkgsrc-2020Q1:1.26.0.2
pkgsrc-2020Q1-base:1.26
pkgsrc-2019Q4:1.25.0.8
pkgsrc-2019Q4-base:1.25
pkgsrc-2019Q3:1.25.0.4
pkgsrc-2019Q3-base:1.25
pkgsrc-2019Q2:1.25.0.2
pkgsrc-2019Q2-base:1.25
pkgsrc-2019Q1:1.24.0.2
pkgsrc-2019Q1-base:1.24
pkgsrc-2018Q1:1.22.0.2
pkgsrc-2018Q1-base:1.22
pkgsrc-2017Q4:1.21.0.2
pkgsrc-2017Q4-base:1.21
pkgsrc-2017Q3:1.20.0.4
pkgsrc-2017Q3-base:1.20
pkgsrc-2017Q2:1.18.0.2
pkgsrc-2017Q2-base:1.18
pkgsrc-2017Q1:1.17.0.2
pkgsrc-2017Q1-base:1.17
pkgsrc-2016Q4:1.14.0.4
pkgsrc-2016Q4-base:1.14
pkgsrc-2016Q3:1.14.0.2
pkgsrc-2016Q3-base:1.14
pkgsrc-2016Q2:1.13.0.2
pkgsrc-2016Q2-base:1.13
pkgsrc-2016Q1:1.12.0.2
pkgsrc-2016Q1-base:1.12
pkgsrc-2015Q4:1.9.0.2
pkgsrc-2015Q4-base:1.9
pkgsrc-2015Q3:1.6.0.6
pkgsrc-2015Q3-base:1.6
pkgsrc-2015Q2:1.6.0.4
pkgsrc-2015Q2-base:1.6
pkgsrc-2015Q1:1.6.0.2
pkgsrc-2015Q1-base:1.6
pkgsrc-2014Q3:1.4.0.2
pkgsrc-2014Q3-base:1.4
pkgsrc-2013Q2:1.3.0.2
pkgsrc-2013Q2-base:1.3
pkgsrc-2013Q1:1.2.0.6
pkgsrc-2013Q1-base:1.2
pkgsrc-2012Q4:1.2.0.4
pkgsrc-2012Q4-base:1.2
pkgsrc-2012Q3:1.2.0.2
pkgsrc-2012Q3-base:1.2
pkgsrc-2012Q2:1.1.0.2
pkgsrc-2012Q2-base:1.1;
locks; strict;
comment @# @;
1.35
date 2021.12.16.12.59.43; author tnn; state dead;
branches;
next 1.34;
commitid CAnizYYJpJAtjSkD;
1.34
date 2021.09.10.13.10.58; author nia; state Exp;
branches;
next 1.33;
commitid EXJpuqY4Ca3lvp8D;
1.33
date 2021.08.27.03.32.37; author ryoon; state dead;
branches;
next 1.32;
commitid DbRjuRDrClQQKy6D;
1.32
date 2021.05.24.14.22.08; author ryoon; state Exp;
branches;
next 1.31;
commitid DZxfTk2ANsVBopUC;
1.31
date 2021.03.06.11.19.34; author reinoud; state Exp;
branches;
next 1.30;
commitid EmPH7alGWzKiVeKC;
1.30
date 2021.02.20.22.59.29; author ryoon; state dead;
branches;
next 1.29;
commitid pvG3PIr8gVPOfvIC;
1.29
date 2020.08.12.18.31.27; author ryoon; state Exp;
branches;
next 1.28;
commitid InfvcxEPejytWNjC;
1.28
date 2020.05.23.15.46.12; author leot; state Exp;
branches;
next 1.27;
commitid Ofe4nQ05X1fABn9C;
1.27
date 2020.04.30.17.16.04; author adam; state Exp;
branches;
next 1.26;
commitid cd1auvOjzJ79Rq6C;
1.26
date 2020.02.06.16.46.17; author kamil; state Exp;
branches;
next 1.25;
commitid kzODRgJAD7BRoDVB;
1.25
date 2019.04.24.13.59.32; author ryoon; state Exp;
branches;
next 1.24;
commitid 3cP2XZZQL0KRJBkB;
1.24
date 2019.02.13.05.16.12; author kamil; state Exp;
branches;
next 1.23;
commitid xonWwOBT27M95zbB;
1.23
date 2018.04.25.07.56.05; author adam; state dead;
branches;
next 1.22;
commitid UKIbp3xYDcojqNzA;
1.22
date 2018.01.04.16.48.17; author gson; state Exp;
branches;
next 1.21;
commitid gmj9g6XPG127WzlA;
1.21
date 2017.12.14.02.03.53; author kamil; state Exp;
branches;
next 1.20;
commitid 06Rl0mgLE35vHNiA;
1.20
date 2017.08.30.21.07.10; author kamil; state Exp;
branches;
next 1.19;
commitid ZmlK1cR6uPI5sh5A;
1.19
date 2017.08.30.21.00.46; author kamil; state Exp;
branches;
next 1.18;
commitid Loj6g6knWgkRmh5A;
1.18
date 2017.04.15.17.38.48; author riastradh; state Exp;
branches;
next 1.17;
commitid 7ni6CNpPVhqLHENz;
1.17
date 2017.02.27.05.19.29; author adam; state Exp;
branches
1.17.2.1;
next 1.16;
commitid yQxisEEOTxOP6yHz;
1.16
date 2017.01.08.02.26.47; author kamil; state Exp;
branches;
next 1.15;
commitid ZcxaKVEl7IfLL6Bz;
1.15
date 2016.12.30.10.00.16; author ryoon; state Exp;
branches;
next 1.14;
commitid SSakfmsdZHzLzZzz;
1.14
date 2016.09.04.09.21.04; author ryoon; state Exp;
branches;
next 1.13;
commitid I3i6KeRF9qQq7Xkz;
1.13
date 2016.05.15.01.25.15; author ryoon; state Exp;
branches;
next 1.12;
commitid zFy0Jq67hO8r5w6z;
1.12
date 2016.03.24.15.21.10; author khorben; state Exp;
branches
1.12.2.1;
next 1.11;
commitid PXrfHDPcqZTfnUZy;
1.11
date 2016.03.06.19.41.24; author dbj; state Exp;
branches;
next 1.10;
commitid nlqOse7fSMQToCXy;
1.10
date 2016.03.06.09.55.58; author dbj; state Exp;
branches;
next 1.9;
commitid QRdTyK5kB0N4azXy;
1.9
date 2015.12.22.23.52.00; author ryoon; state Exp;
branches;
next 1.8;
commitid CJpyeRM0qaFsc0Oy;
1.8
date 2015.12.21.12.10.22; author ryoon; state Exp;
branches;
next 1.7;
commitid iIgk3Ub0QDkKlONy;
1.7
date 2015.12.18.22.39.33; author ryoon; state Exp;
branches;
next 1.6;
commitid wxHPTTrSnfrzVtNy;
1.6
date 2015.01.07.21.39.24; author wiedi; state Exp;
branches
1.6.6.1;
next 1.5;
commitid 63sBBVHALkttG85y;
1.5
date 2014.10.14.21.00.15; author snj; state dead;
branches;
next 1.4;
commitid 2o7CjRnCduFmcdUx;
1.4
date 2014.08.17.08.57.01; author adam; state Exp;
branches;
next 1.3;
commitid TpoKc3VhnhUA3HMx;
1.3
date 2013.06.16.18.27.25; author tsutsui; state dead;
branches;
next 1.2;
commitid QgBMwNl5XgsBWRTw;
1.2
date 2012.09.11.17.13.45; author asau; state Exp;
branches;
next 1.1;
1.1
date 2012.06.25.10.07.21; author sbd; state Exp;
branches;
next ;
1.17.2.1
date 2017.04.17.14.51.06; author bsiegert; state Exp;
branches;
next ;
commitid XUDJuwvGvrulITNz;
1.12.2.1
date 2016.05.19.12.56.38; author bsiegert; state Exp;
branches;
next ;
commitid 2jzGz3zomTRHM57z;
1.6.6.1
date 2015.12.22.20.21.43; author bsiegert; state Exp;
branches;
next 1.6.6.2;
commitid cJtt2KoCyBXk2ZNy;
1.6.6.2
date 2015.12.26.22.51.12; author bsiegert; state Exp;
branches;
next ;
commitid yo3AQCa5qTaEJvOy;
desc
@@
1.35
log
@qemu: update to 6.2.0
Tested on NetBSD-current/amd64 w/nvmm and macOS/aarch64 w/hvf.
pkgsrc note: Recent upstream changes seem to have unintentionally broken the
NetBSD usermode emulation. User-mode emulation is thus disabled until someone
fixes this. Hint: see qemu/bsd-user/freebsd commits by M. Warner Losh.
Changes:
m68k
Improved support for Apple's Nubus, including the ability to load
declaration ROMs and slot IRQ support
The macfb framebuffer device now supports the same video modes found
on a real Quadra 800
Arm
On macOS hosts with Apple Silicon CPUs we now support the 'hvf'
accelerator for running AArch64 guests
M-profile CPUs now emulate trapping on division by zero via CCR.DIV_0_TRP
The pl011 UART model now supports sending 'break'
The Fujitsu A64FX processor model is now supported in TCG ('-cpu a64fx')
The M-profile MVE extension is now supported, and enabled in the Cortex-M55
The deprecated machine names 'raspi2' and 'raspi3' have been removed;
use 'raspi2b' and 'raspi3b' instead
The 'virt' machine now supports an emulated ITS
New machine type: kudo-bmc
The xlnx-zcu102 and xlnx-versal-virt machines now support
BBRAM and eFUSE devices
The 'virt' machine now supports more than 123 CPUs in TCG emulation mode
The pl031 real-time clock device now supports sending RTC_CHANGE QMP events
PowerPC
Improved POWER10 support for the 'powernv' machine
Initial support for POWER10 DD2.0 CPU added
Added support for FORM2 PAPR NUMA descriptions in the "pseries" machine type
RISC-V
Add Zb[abcs] instruction support
Remove RVB support
Fixup virt flash node
Don't override users supplied ISA version
Fixup some CSR accesses
Fix an overflow in the SiFive CLINT
ePMP CSR address updates
SiFive PWM support
Support for RISC-V ACLINT
Support vhost-user and numa mem options on all boards
mstatus.SD bug fix for hypervisor extensions
OpenTitan fix for USB dev address
OpenTitan update to latest bitstream build
Remove the Ibex PLIC
Bug fix of setting mstatus_hs.[SD|FS] bits
Fixes for sifive PDMA
Mark shakti_c as not user creatable
Add support for the experimental J extension
Update the fmin/fmax handling
s390x
Improved storage key emulation
New gen16 CPU features are now enabled automatically
SPARC
Fix for booting sun4m machines with more than 1 CPU
x86
New Snowridge-v4 CPU model, with split-lock-detect feature disabled
KVM
Support for SGX in the virtual machine
New "hv-apicv" CPU property (aliased to "hv-avic")
AMD SEV
Measured launch with direct kernel boot is now possible
virtio
QEMU now fully supports guest memory dumps with virtio-mem.
QEMU now cleanly supports precopy/postcopy migration & background snapshots
9pfs
Fixed an occasional crash when handling 'Twalk' requests
Fixed sub-optimal I/O performance on guest
QMP
New event DEVICE_UNPLUG_GUEST_ERROR
Block device backends and tools
qemu-nbd now defaults to writeback caching
qemu-nbd now has a --selinux-label option for Unix socket label
TCG
plugins now have a bool arg parsing helper and cleaned up argument syntax
the cache plugin is now multi-core aware
@
text
@$NetBSD: patch-configure,v 1.34 2021/09/10 13:10:58 nia Exp $
Allow the compiler from NetBSD 9.0.
Requiring a minor version of GCC makes no sense, and indeed,
the requirement seems to be 7.5.0 because "Ubuntu has that
version"...
https://github.com/qemu/qemu/commit/56208a0d473c6db263cc333c787ca48b502d72ab
--- configure.orig 2021-08-24 17:35:40.000000000 +0000
+++ configure
@@@@ -2099,7 +2099,7 @@@@ cat > $TMPC << EOF
# endif
# endif
#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
-# if __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 5)
+# if __GNUC__ < 7
# error You need at least GCC v7.5.0 to compile QEMU
# endif
#else
@
1.34
log
@qemu: Patch out silly insistence on being compiled with GCC 7.5.0
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.32 2021/05/24 14:22:08 ryoon Exp $
@
1.33
log
@qemu: Update to 6.1.0
* 6.1.0 release has NetBSD NVMM support.
* Fix NetBSD NVMM compile errors.
* Remove integrated Alpha patches.
Changelog:
Highlights include:
* block: support for changing block node options after creation via
'blockdev-reopen' QMP command
* Crypto: more performant backend recommendations and improved documentation
* I2C: emulation support for I2C muxes (pca9546, pca9548) and PMBus
* TCG Plugins: now enabled by default, with new execlog and cache modelling
plugins.
* ARM: new board support for Aspeed (rainier-bmc, quanta-q7l1), npcm7xx
(quanta-gbs-bmc), and Cortex-M3 (stm32vldiscovery) based machines
* ARM: Aspeed support of Hash and Crypto Engine
* ARM: emulation support for SVE2 (including bfloat16), integer matrix
multiply accumulate operations, TLB invalidate in Outer Shareable domain,
TLB range invalidate, and more.
* PowerPC: pseries: support for detecting hotplug failures in newer guests
* PowerPC: pseries: increased maximum CPU count
* PowerPC: pseries: emulation support for some POWER10 prefixed instructions
* PowerPC: new board support for Genesi/bPlan Pegasos II (pegasos2)
* RISC-V: updates to OpenTitan platform support, including OpenTitan timer
* RISC-V: support for virtio-vga
* RISC-V: documentation improvements and general code cleanups/fixes
* s390: emulation support for the vector-enhancements facility
* s390: support for gen16 CPU models
* x86: new Intel CPU model versions with support for XSAVES instruction
* x86: added ACPI based PCI hotplug support for Q35 machine (now the default)
* x86: improvements to emulation of AMD virtualization extensions
* and lots more...
@
text
@d3 9
a11 1
--- configure.orig 2021-04-29 17:18:59.000000000 +0000
d13 9
a21 36
@@@@ -352,6 +352,7 @@@@ kvm="auto"
hax="auto"
hvf="auto"
whpx="auto"
+nvmm="auto"
rdma="$default_feature"
pvrdma="$default_feature"
gprof="no"
@@@@ -1107,6 +1108,10 @@@@ for opt do
;;
--enable-hvf) hvf="enabled"
;;
+ --disable-nvmm) nvmm="disabled"
+ ;;
+ --enable-nvmm) nvmm="enabled"
+ ;;
--disable-whpx) whpx="disabled"
;;
--enable-whpx) whpx="enabled"
@@@@ -1848,6 +1853,7 @@@@ disabled with --disable-FEATURE, default
kvm KVM acceleration support
hax HAX acceleration support
hvf Hypervisor.framework acceleration support
+ nvmm NVMM acceleration support
whpx Windows Hypervisor Platform acceleration support
rdma Enable RDMA-based migration
pvrdma Enable PVRDMA support
@@@@ -6410,7 +6416,7 @@@@ NINJA=$ninja $meson setup \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \
-Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
- -Dkvm=$kvm -Dhax=$hax -Dwhpx=$whpx -Dhvf=$hvf \
+ -Dkvm=$kvm -Dhax=$hax -Dwhpx=$whpx -Dhvf=$hvf -Dnvmm=$nvmm \
-Dxen=$xen -Dxen_pci_passthrough=$xen_pci_passthrough -Dtcg=$tcg \
-Dcocoa=$cocoa -Dgtk=$gtk -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
@
1.32
log
@qemu: Update to 6.0.0
* Add zstd dependency.
Changelog:
== System emulation ==
=== Incompatible changes ===
Consult the [https://qemu-project.gitlab.io/qemu/system/removed-features.html 'Removed features' ] page for details of suggested replacement functionality
* 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.
* TileGX emulation has been removed without replacement
* 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
* The ''-usbdevice audio'' option has been removed. Use ''-device usb-audio'' instead.
* The ''-usbdevice ccid'' option has been removed with no replacement
* The ''-vnc'' parameter ''acl'' option, and ''acl_*'' monitor commands have been removed.
* The ''pretty'' option is no longer accepted when used with the human monitor
* The ''change'' QMP command has been removed. Use ''blockdev-change-medium'' or ''change-vnc-password'' instead.
* The ''query-events'' QMP command has been removed
* The ''migrate_set_speed'', ''migrate_set_downtime'' and ''migrate-set-cache-size'' QMP/HMP commands have been removed.
* The ''query-cpus'' QMP command has been removed
* The ''arch'' field in the ''query-cpus-fast'' command has been removed
* The ''-chardev'' parameter ''wait'' option is no longer accepted for socket clients
* The ''ide-drive'' device type has been removed
* The ''scsi-disk'' device type has been removed
* The ''encryption_key_missing'' field has been removed from block device info data
* The ''status'' field has been removed from dirty bitmap info
* The ''dirty-bitmaps'' field has been removed from the ''BlockInfo'' struct
* The ''file'' block driver no longer permits use with block devices
* The use of ''-global'' to set floppy controllers is removed. Use ''-device floppy,...'' instead.
* The ''-drive'' option must now use ''if=none'' for drives the onboard device does not pick up.
* The ''object-add'' QMP command member ''props'' has been removed. Its contents may be used with less nesting instead.
* The mips ''fulong2e'' machine alias has been removed. Use ''fuloong2e'' instead.
=== New deprecated options and features ===
Consult the [https://www.qemu.org/docs/master/system/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.
* The --enable-fips option has been deprecated. Consumers wishing to have FIPS compliance must build QEMU with libcrypt and gnutls, NOT nettle.
* The ''-writeconfig'' option has been deprecated. The functionality of ''-writeconfig'' is limited and the code does not even try to detect cases where it prints incorrect syntax (for example if values have a quote in them). It will be removed without replacement.
* Boolean parameters such as ''share=on'' / ''share=off'' could be written in short form as ''share'' and ''noshare''. This is now deprecated and will cause a warning.
* ''-chardev'' backend aliases ''tty'' and ''parport'' are aliases that will be removed. Instead, the actual backend names ''serial'' and ''parallel'' should be used.
* The ''delay'' option for socket character devices is now deprecated.
* Userspace local APIC with KVM (''-M kernel-irqchip=off'')
* hexadecimal sizes with scaling multipliers (e.g. ''0x20M'')
* ''-spice password=string'' is deprecated now. Use ''password-secret'' option instead.
* ''opened'' property of ''rng-*'' objects
* ''loaded'' property of ''secret'' and ''secret_keyring''
* MIPS ''Trap-and-Emulate'' KVM support
=== 68k ===
* Add a new machine, virt, based on virtio devices
=== 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 FEAT_SSBS 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, and a model of the XRAMs and the XRAM controller
* the sabrelite board emulation has been improved and it can now run U-Boot
* the npcm7xx boards support more devices: ADC, PWM, SMBus, EMC, MFT
* 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
* A new board model mps3-an524 (using Cortex-M33) is now implemented
* A new board model mps3-an547 (using Cortex-M55) is now implemented
=== AVR ===
=== Hexagon ===
* QEMU can now emulate Qualcomm's Hexagon DSP units.
=== 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
* pseries will now send MEM_UNPLUG_ERROR QAPI message in cases where it can detect that a memory unplug has failed
* pseries will now allow cpu unplug requests to be retried, even if the guest hasn't responded to them yet.
* This will re-signal the guest, which might an unplug to complete which the guest previous rejected
=== Renesas RX ===
=== Renesas SH ===
=== RISC-V ===
* Improve the sifive_u DTB generation
* Add QSPI NOR flash to Microchip PFSoC
* Improvements to the Microchip PFSoc to improve support with the SDK
* A range of fixes to the Hypervisor extension
* Fix some mstatus mask defines
* Ibex PLIC and UART 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
* Fixes to PMP region checking
* Fix 32-bit Linux boot problems with DTB placement
* OpenSBI upgraded to v0.9
* Support the QMP dump-guest-memory command
* Add support for the SiFive SPI controller (sifive_u)
* Initial RISC-V system documentation
* Support for high PCIe memory in the virt machine
* Fixes to the vector extensions CSR accesses
* ramfb support in the virt machine
=== s390 ===
* Linux kernels built with clang-11 and clang-12 now work correctly under tcg
=== SPARC ===
=== TileGX ===
* TileGX has been removed without replacement.TileGX was only implemented in linux-user mode, but support for this CPU was removed from the upstream Linux kernel in 2018, and it has also been dropped from glibc, so there is no new Linux development taking place with this architecture, rendering the linux-user mode emulation rather useless. For running older binaries, users can simply use older versions of QEMU.
=== Tricore ===
* Added Triboard with tc27x SoC
=== 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 ====
* new ''-machine'' options ''oem-id'' and ''oem-table-id'' to allow setting custom values for ''OEM ID'' and ''OEM table ID'' ACPI table fields
* in QEMU 5.1, PCI root UID changed to from 1 to 0 for all x86 machine types, this caused issues in Windows guest with virtio devices being re-enumeraed as new devices. QEMU 6.0 fixes it by reverting UID to 1 for 5.1 and older machine types. See commit 0a343a5add75 for details. For 5.2 and later machine types it might be necessary to reconfigure/reinstall Windows VM, if used disk image was created on 5.1 and older machine types.
* Support for user provided PCI NIC index on ''pc'' machine type with help of new ''acpi-index'' PCI device option. For linux guests, It lets user to use ''onboard'' naming scheme ''enoX'' where X is set with ''acpi-index'' option. It makes NIC naming independent from which PCI slot it is plugged in. Works with cold and hot-plugged NICs, as long as used PCI bus is managed by ACPI PCI hotplug (which is enabled for PCI root bus and bridges present at boot time by default on latest ''pc'' machine type ).
==== Audio ====
==== Block devices ====
* virtio-blk reports --device virtio-blk-pci,discard_granularity= in the virtio-blk discard_sector_alignment configuration space field so that guests with new machine types can take advantage of this information. Previously virtio-blk devices reported --device virtio-blk-pci,logical_block_size= instead.
==== 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 [https://qemu.readthedocs.io/en/latest/system/multi-process.html 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 ====
===== Emulated NVMe Controller =====
* ''Highlights''
** The implemented spec version has been bumped to v1.4
** Experimental support for Zoned Namespaces (TP 4053) has been added
** Experimental support for NVM Subsystems, multipath I/O and namespace sharing
** Experimental support for Metadata and End-to-End Data Protection
* ''New commands''
** Dataset Management
** Compare
** Simple Copy (TP 4065)
** Format NVM
** Verify
* ''Other new features''
** Support for reporting the Deallocated or Unwritten Logical Block Error (DULBE)
** Namespace UUID reported as a Namespace Descriptor
** Support for Namespace Types (TP 4056)
** Support for triggering a SMART Critical Warning through QMP
** Controller Memory Buffer support has been enhanced for NVMe v1.4 (to revert to v1.3 behavior, use the new legacy-cmb controller parameter)
** Persistent Memory Region RDS/WDS support
* ''New log pages''
** Commands Supported and Effects
==== 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 ====
* Rework of the ESP SCSI emulation to allow mixed FIFO/(P)DMA commands along with various other fixes
==== 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= property added to all usb devices to enable this.
==== VFIO ====
==== virtio ====
==== Xen ====
* A new [https://qemu.readthedocs.io/en/latest/system/guest-loader.html guest loader] which allows testing of Xen-like hypervisors booting kernels without messing around with firmware/bootloaders
==== fw_cfg ====
==== 9pfs ====
==== virtiofs ====
* Security fix for CVE-2020-35517 - prevent opening of special files
* Security fix for CVE-2021-20263 - when used with xattrmap, drop remapped security.capability
* Performance improvements with new guest kernel feature FUSE_KILLPRIV_V2
==== Semihosting ====
* Added support for RiscV (ARM style s= 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 displab 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=lation to NBD_STATE_HOLE.
* ''qemu-img'' gained more accurate parsing for size values. Previously, only 53 significant digits were supported, and large sizes could end up with inadvertent rounding; now the parser supports a full 64 bits of precision.
* The ''object-add'' QMP command is now available in qemu-storage-daemon.
* qemu-storage-daemon supports a ''--pidfile'' option now
* The ''parallels'' image format driver has gained support for dirty bitmaps in read-only mode
=== Tracing ===
=== Miscellaneous ===
* The command line option ''-object'' (or ''--object'') accepts JSON input now in all binaries (system emulators and tools). In tools, it also supports non-scalar options using the dotted key syntax known from options like ''--blockdev''.
* The QMP command ''object-add'' is now covered by the QAPI schema and clients can use schema introspection to detect object types and options supported by the given QEMU binary.
* 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.
* A new [https://qemu.readthedocs.io/en/latest/system/guest-loader.html guest loader] whications.
== User-mode emulation ==
=== binfmt_misc ===
Added support of 'P' flag (preserve-argv[0])
With kernel v5.12, QEMU can detect if it is started with preserve-argv[0] flag and adjust the list of arguments accordingly.
=== Hexagon ===
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 ==
* Added support for Apple Silicon hosts (macOS)
@
text
@d1 1
a1 1
$NetBSD$
@
1.31
log
@Re-add the NetBSD/amd64 Virtual Memory Monitor (NVMM) support to QEMU 5.2.0
thanks go to Ryo ONODERA for his help with the build logic
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.29 2020/08/12 18:31:27 ryoon Exp $
d3 1
a3 4
Add NVMM support.
Fix jemalloc detection.
--- configure.orig 2020-12-08 16:59:44.000000000 +0000
d5 1
a5 2
@@@@ -334,6 +334,7 @@@@ vhost_user_fs=""
kvm="auto"
d8 1
d10 4
a13 4
whpx="auto"
rdma=""
pvrdma=""
@@@@ -1102,6 +1103,10 @@@@ for opt do
d24 1
a24 1
@@@@ -1783,6 +1788,7 @@@@ disabled with --disable-FEATURE, default
d32 1
a32 2
@@@@ -7005,7 +7011,7 @@@@ NINJA=$ninja $meson setup \
${staticpic:+-Db_staticpic=$staticpic} \
d34 1
d39 1
a39 1
-Dcocoa=$cocoa -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
@
1.30
log
@Update to 5.2.0
Changelog:
IMPORTANT NOTE: in this release we have switched our build system to internally use Meson. Building should be broadly unchanged for most users, but please see the [[#Build Information|Build Information]] section of the changelog for details and for '''the list of new [[#Build Dependencies |build dependencies]] you now need to install'''.
== System emulation ==
=== Incompatible changes ===
=== New deprecated options and features ===
Consult the [https://www.qemu.org/docs/master/system/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for the full list of historically deprecated features/options.
In particular, note that the Unicore32 and lm32 guest support have been deprecated and will be removed in a future version. They are now only built if explicitly enabled in --target-list.
=== 68k ===
=== Alpha ===
=== Arm ===
* ARMv8.2 FEAT_FP16 (half-precision floating point) is now implemented for AArch32 emulation (AArch64 already supported this)
* AArch64 BTI is now supported in linux-user emulation mode (it was already implemented for system emulation)
* The SMMUv3 model now supports SMMUv3.2 range invalidation
* The sbsa-ref board now has an embedded controller model for guest powerdown and reboot requests
* The sbsa-ref board now has an SBSA-compatible generic watchdog device
* The Raspberry Pi boards now emulate the CPRMAN clock manager device
* Support for KVM on 32-bit host CPUs (deprecated in 5.0) has now been removed. (32-bit KVM guests on 64-bit hosts remain supported.)
* Two new board models in the mps2 family: mps2-an386 (Cortex-M4 based) and mps2-an500 (Cortex-M7 based)
* New board models in the raspi family: raspi3ap (the Pi 3 model A+), raspi0 (the Pi Zero) and raspi1ap (the Pi A+)
* New Nuvoton iBMC board models: npcm750-evb, quanta-gsj
* The 'max' CPU now implements a 48-bit physical address size when using TCG emulation.
* The 'virt' board supports kvm-steal-time (enabled by default for virt-5.2 and on) so that a guest OS can account for time when its CPUs were not running due to the host not scheduling the corresponding vCPU threads.
=== AVR ===
=== HPPA ===
* Added power button emulation
* Boots NetBSD
* Boots old Linux CDs, e.g debian-0.5 and debian-0.6.1
* Artist framebuffer fixes when running dtwm on HP-UX
* Artist graphics allows screen resolution up to 2048 x 2048 pixels
* fw_cfg interface added
=== Microblaze ===
=== MIPS ===
=== Nios2 ===
=== OpenRISC ===
=== PowerPC ===
* The pseries machine now respects the nvdimm= machine option (previously NVDIMMs could be attached even with nvdimm=off)
* The pseries machine now does a better job of reflecting the user specified NUMA distances in the guest (PAPR limitations mean it's still a pretty poor approximation, though)
* We now fail more gracefully if attempting to run an HPT guest as a nested KVM guest (which isn't supported in the kernel for now)
* spapr_vscsi should now properly report that it does not support hotplug
* The pnv machine now allows firmware images up to 16MiB, instead of just 4 MiB (this matches the limit on physical FSP machines)
=== Renesas RX ===
=== Renesas SH ===
=== RISC-V ===
* Improvements to the Ibex (OpenTitan) PLIC
* OpenSBI v0.8 included by default
* Generic OpenSBI platform used when no -bios argument is supplied
* Support for a noMMU Linux kernel with the `-kernel` option
* A dummy L2 cache controller for the sifive_u is now included
* Support for the SiFive OTP device
* PMPCFG CSR setting bug fixed for RV64
* Improvements to the floating point helpers
* Experimental Hypervisor support updated to v0.6.1 and bug fixes
* Support for NUMA sockets on Virt and Spike Machines
* Support for the Microchip PolarFire SoC Icicle Kit
* Fix for crash seen when running 'poweroff' command on virt machine
* virt and sifive_u machines allow a custom dtb argument
* Support for migrating machines
=== s390 ===
* KVM: The diagnose 0x318 instruction is now supported.
* TCG: More instructions that were introduced with the z14 are now emulated.
* zPCI: vfio-pci devices now report real hardware features for functions, instead of emulated values (needs host kernel support.)
* virtiofs is now also supported on s390x via ccw
=== SPARC ===
* sun4m: fix panic when booting NetBSD with the TCX framebuffer
* sun4u: fix for sabre PCI IRQs being lost due to memory overflow
=== TileGX ===
=== Tricore ===
=== x86 ===
* A new KVM feature which improves the handling of asynchronous page faults is available with ''-cpu ...,kvm-async-pf-int''. This requires Linux 5.8.
=== Xtensa ===
* DFPU coprocessor with single and double precision floating point opcodes is now supported
* NMI is now supported
=== Device emulation and assignment ===
==== ACPI ====
==== Audio ====
==== Block devices ====
==== Graphics ====
==== Input devices ====
==== IPMI ====
==== Network devices ====
==== NVDIMM ====
==== NVMe ====
* Add support for mandatory features of version 1.3 of the NVM Express specification
* Add support for the Abort, Asynchronous Event Request and Get Log Page commands
* Add support for Scatter Gather Lists (supported descriptors: Data Block, Bit Bucket, Segment and Last Segment)
* Allow the device to be configured with the "Admin Only" command set
* Support multiple namespaces through the new nvme-ns device
* The unallocated Intel PCI Vendor and Device ID has been replaced with a QEMU allocated "Red Hat" ID
* Support per-namespace SMART log
==== PCI/PCIe ====
==== SCSI ====
==== SD card ====
==== SMBIOS ====
* The OEM Strings data can now be loaded from a file
==== TPM ====
==== USB ====
==== VFIO ====
==== virtio ====
==== Xen ====
==== fw_cfg ====
==== 9pfs ====
* Significant [https://lists.gnu.org/archive/html/qemu-devel/2020-01/msg05539.html performance improvement of Treaddir] requests.
* A performance warning is now logged on host side if 'msize' is set to a very small value, which especially includes Linux 9P clients not having any user specified 'msize' parameter at all. Simply setting 'msize' (on client/guest side) to any value larger than 8192 will cause the warning to disappear. See [https://wiki.qemu.org/Documentation/9psetup#msize msize documentation] for details.
==== virtiofs ====
* virtiofsd xattrmap option to allow the host to see different xattr names to the guest
* virtiofsd alternate sandbox option for environments where pivot_root isn't available
* virtiofsd 'submount' mechanism (requiring newer guest kernel) allows different host mounts to be seen as separate submounts in the guest, avoiding inode clashes.
==== Semihosting ====
=== Audio ===
=== Character devices ===
* Inverted logic in QAPI handling the "tight" option for abstract UNIX sockets was fixed.
* The QAPI schema now only reports support for abstract UNIX sockets on platforms where it is available (Linux).
=== Crypto subsystem ===
==== experimental qmp interface ====
=== GUI ===
* Spice: add support for SIDE and EXTRA mouse buttons. Improve HiDPI, set physical dimensions of client monitors.
* Build spice and opengl as modules
=== GDBStub ===
=== Host support ===
=== Memory backends ===
=== Migration ===
* A new 'block-bitmap-mapping' migration parameter is added, allowing finer control of which bitmaps to migrate, even when node names differ between source and destination.
* Migration over 'vsock' is now allowed, for nested environments or hosts with hardware that looks like a vsock.
* A new 'calc-dirty-rate'/'query-dirty-rate' call gathers an approximation of the rate at which the guest is dirtying RAM and thus gives an idea about whether precopy migration is likely to proceed.
* The default migration bandwidth has been increased to 1Gbps; users are still encouraged to tune it to their own hardware.
* TLS+multifd is now supported for higher bandwidth encrypted migration.
* Migration with dirty bitmaps has several bugs fixed.
=== Monitor ===
==== QMP ====
* Command block_resize no longer blocks the main loop.
==== HMP ====
* Command block_resize no longer blocks the main loop.
=== Network ===
=== Block device backends and tools ===
* qcow2 files now support extended L2 entries that allow subcluster-based allocation (enable with extended_l2=on when creating the image).
* Using qemu as an NBD client has fewer scenarios where network timeouts stall guest execution
* More explicit errors are reported when use of O_DIRECT fails
* The 'block-export-add' QMP command has been introduced to support qemu-storage-daemon, and replaces the now-deprecated 'nbd-server-add' command.
* The 'vhost-user-blk' export type has been added, allowing qemu-storage-daemon to act as a vhost-user-blk device backend.
* qemu-nbd now supports multiple '-B name' options for exposing multiple dirty bitmaps at once; it also supports a new '-A' option for exposing the new "qemu:allocation-depth" metadata context over NBD.
=== Tracing ===
* Add support of dtrace backend on macOS
=== Miscellaneous ===
* The roms/edk2 submodule and the bundled edk2 binaries have been updated to [https://bugs.launchpad.net/qemu/+bug/1852196 edk2-stable202008].
== User-mode emulation ==
* ppc64abi32-linux-user is deprecated and only built when explicitly enabled in--target-list
* tilegx-linux-user is deprecated and only built when explicitly enabled in--target-list
* better reporting when we can't mmap the guest_base we want on systems without MAP_FIXED_NOREPLACE
== TCG ==
== Guest agent ==
* New commands: guest-get-devices, guest-get-disks & guest-ssh-{get,add,remove}-authorized-keys
* Support guest-get-fsinfo for non-PCI virtio devices, too
== Build Information ==
* The build system is now partly based on Meson. However, building is still done with ''configure'' and ''make'' as in previous versions of QEMU.
* Binaries for emulators are placed in the root build directory, for example as ''qemu-system-ppc'' instead of ''ppc-softmmu/qemu-system-ppc''. Symbolic links from the old binary are preserved to simplify the transition.
* In-tree builds are not supported anymore. The build system will try to cater for ''./configure && make && make install'' by building QEMU in a directory named ''build'', but you are encouraged to switch to out-of-tree builds instead.
* ivshmem-client and ivshmem-server are not installed anymore. They are merely examples, and not to be used in production.
* QEMU installations are now relocatable. For example, if QEMU is configured with ''bindir=/usr/local/bin'' and ''datadir=/usr/local/share'', when QEMU is launched as ''/opt/local/qemu-5.2/bin/qemu-system-x86_64'' it will look automatically for data files in ''/opt/local/qemu-5.2/share''. Note that directories configured outside the prefix (as is often the case for ''/etc'' and ''/var'') will not be relocated! Previously this was done only under Windows and only for emulators.
=== Python ===
* Python 3.6 or newer is now required to build QEMU.
=== GIT submodules ===
=== Container Based Builds ===
* All Debian 9 based cross-compiler containers have been updated to Debian 10
=== Build Dependencies ===
* Ninja 1.7 or newer is now required to build QEMU:
* '''$ apt-get install ninja-build''' (Debian/Ubuntu and derivative distros)
* '''$ dnf/yum install ninja-build''' (RHEL/Fedora/CentOS and derivative distros)
* '''$ brew install ninja''' (macOS with HomeBrew)
* '''$ pkg install ninja''' (FreeBSD)
=== Windows ===
* qemu-nbd is now built on mingw, and works for simple cases even if it can't duplicate the full functionality available on Unix systems
=== Testing and CI ===
* a new script can wait on gitlab to finish with a pass/fail status (scripts/ci/gitlab-status)
@
text
@d6 1
a6 1
--- configure.orig 2020-08-11 19:17:15.000000000 +0000
d8 6
a13 31
@@@@ -246,6 +246,17 @@@@ supported_whpx_target() {
return 1
}
+supported_nvmm_target() {
+ test "$nvmm" = "yes" || return 1
+ glob "$1" "*-softmmu" || return 1
+ case "${1%-softmmu}" in
+ i386|x86_64)
+ return 0
+ ;;
+ esac
+ return 1
+}
+
supported_target() {
case "$1" in
*-softmmu)
@@@@ -273,6 +284,7 @@@@ supported_target() {
supported_hax_target "$1" && return 0
supported_hvf_target "$1" && return 0
supported_whpx_target "$1" && return 0
+ supported_nvmm_target "$1" && return 0
print_error "TCG disabled, but hardware accelerator not available for '$target'"
return 1
}
@@@@ -395,6 +407,7 @@@@ kvm="no"
hax="no"
hvf="no"
whpx="no"
+nvmm="no"
d16 1
a16 10
gprof="no"
@@@@ -847,6 +860,7 @@@@ DragonFly)
NetBSD)
bsd="yes"
hax="yes"
+ nvmm=""
make="${MAKE-gmake}"
audio_drv_list="oss try-sdl"
audio_possible_drivers="oss sdl"
@@@@ -1233,6 +1247,10 @@@@ for opt do
d18 1
a18 1
--enable-whpx) whpx="yes"
d20 1
a20 1
+ --disable-nvmm) nvmm="no"
d22 1
a22 1
+ --enable-nvmm) nvmm="yes"
d24 1
a24 1
--disable-tcg-interpreter) tcg_interpreter="no"
d26 3
a28 2
--enable-tcg-interpreter) tcg_interpreter="yes"
@@@@ -1879,6 +1897,7 @@@@ disabled with --disable-FEATURE, default
d31 1
a32 1
+ nvmm NetBSD Virtual Machine Monitor acceleration support
d35 9
a43 54
vde support for vde network
@@@@ -2966,6 +2985,20 @@@@ if test "$whpx" != "no" ; then
fi
##########################################
+# NetBSD Virtual Machine Monitor (NVMM) accelerator check
+if test "$nvmm" != "no" ; then
+ if check_include "nvmm.h" ; then
+ nvmm="yes"
+ LIBS="-lnvmm $LIBS"
+ else
+ if test "$nvmm" = "yes"; then
+ feature_not_found "NVMM" "NVMM is not available"
+ fi
+ nvmm="no"
+ fi
+fi
+
+##########################################
# Sparse probe
if test "$sparse" != "no" ; then
if has cgcc; then
@@@@ -4736,8 +4769,11 @@@@ int main(void) {
}
EOF
- if compile_prog "" "-ljemalloc" ; then
- LIBS="-ljemalloc $LIBS"
+ jemalloc_cflags=$($pkg_config --cflags jemalloc)
+ jemalloc_libs=$($pkg_config --libs jemalloc)
+ if compile_prog "" "$jemalloc_libs" ; then
+ LIBS="$jemalloc_libs $LIBS"
+ QEMU_CFLAGS="$QEMU_CFLAGS $jemalloc_cflags"
else
feature_not_found "jemalloc" "install jemalloc devel"
fi
@@@@ -6934,6 +6970,7 @@@@ echo "KVM support $kvm"
echo "HAX support $hax"
echo "HVF support $hvf"
echo "WHPX support $whpx"
+echo "NVMM support $nvmm"
echo "TCG support $tcg"
if test "$tcg" = "yes" ; then
echo "TCG debug enabled $debug_tcg"
@@@@ -8332,6 +8369,9 @@@@ fi
if test "$target_aligned_only" = "yes" ; then
echo "TARGET_ALIGNED_ONLY=y" >> $config_target_mak
fi
+if supported_nvmm_target $target; then
+ echo "CONFIG_NVMM=y" >> $config_target_mak
+fi
if test "$target_bigendian" = "yes" ; then
echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
fi
@
1.29
log
@qemu: Update to 5.1.0
Changelog:
Highlights include:
ARM: support for ARMv8.2 TTS2UXN architecture feature
ARM: support for ARMv8.5 MemTag architecture feature
ARM: new board support for sonorapass-bmc
ARM: virt: support for memory hot-unplug
ARM: support for nvdimm hotplug for ACPI guests
AVR: new architecture support for AVR CPUs
AVR: new board support for Arduino Duemilanove, Arduino Mega 2560, Arduino Mega, and Arduino UNO
MIPS: support for Loongson 3A CPUs (R1 and R4)
MIPS: performance improvements for FPU and MSA instruction emulation
PowerPC: support for guest error recovery via FWNMI
RISC-V: support for SiFive E34 and Ibex CPUs
RISC-V: new board support for HiFive1 revB and OpenTitan
RISC-V: Spike machine now supports more than 1 CPU
s390: KVM support for protected virtualization (secure execution mode)
x86: improvements to HVF acceleration support on macOS
x86: reduced virtualization overhead for non-enlightened Windows guests via Windows ACPI Emulated Device Table
block: support for 2MB logical/physical blocksizes for virtual storage devices
crypto: support for passing secrets to QEMU via Linux keyring
crypto: support for LUKS keyslot management via qemu-img
NVMe: support for Persistent Memory Region from NVMe 1.4 spec
qemu-img: additional features added for map/convert/measure commands, as well as support for zstd compression
qemu-img: support for new 'bitmap' command for manipulating persistent bitmaps in qcow2 files
virtio: TCG guests can now use vhost-user threads
virtio: vhost-user now supports registering more than 8 RAM slots
and lots more...
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.28 2020/05/23 15:46:12 leot Exp $
@
1.28
log
@qemu: Do not duplicate already existing configure nvmm test in pkgsrc Makefile
configure already had the logic to gracefully test for nvmm and if the
corresponding nvmm variable is set to an empty string do that.
No functional nor binary change intended except a CONFIGURE_ARGS difference.
Fixes PR pkg/55049.
Thanks Yasushi Oshima for reporting this problem, sharing an initial
patch and further testing the version committed now!
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.27 2020/04/30 17:16:04 adam Exp $
d6 1
a6 1
--- configure.orig 2020-04-28 16:49:25.000000000 +0000
d8 1
a8 1
@@@@ -241,6 +241,17 @@@@ supported_whpx_target() {
d26 1
a26 1
@@@@ -268,6 +279,7 @@@@ supported_target() {
d34 1
a34 1
@@@@ -389,6 +401,7 @@@@ kvm="no"
d42 1
a42 1
@@@@ -837,6 +850,7 @@@@ DragonFly)
d50 1
a50 1
@@@@ -1210,6 +1224,10 @@@@ for opt do
d61 1
a61 1
@@@@ -1832,6 +1850,7 @@@@ disabled with --disable-FEATURE, default
d69 1
a69 1
@@@@ -2871,6 +2890,20 @@@@ if test "$whpx" != "no" ; then
d90 2
a91 2
@@@@ -4586,8 +4619,11 @@@@ if test "$jemalloc" = "yes" ; then
int main(void) { malloc(1); return 0; }
d104 1
a104 1
@@@@ -6651,6 +6687,7 @@@@ echo "KVM support $kvm"
d112 1
a112 1
@@@@ -8001,6 +8038,9 @@@@ fi
@
1.27
log
@qemu: updated to 5.0.0
5.0.0:
Incompatible changes
The bluetooth code has been removed without replacement. It was quite neglected over the years and likely not usable anymore. You can passthrough a dedicated USB bluetooth dongle to guests on most machines instead if you still need bluetooth in your guest.
The pc-0.12, pc-0.13, pc-0.14, pc-0.15 machines have been removed. Newer versions of the machine type should be used instead.
The "prep" ppc machine has been removed. The "40p" machine should be used now instead.
The "-virtfs_synth" option has been removed. You can use "-fsdev synth" together with "-device virtio-9p-..." instead.
The "-accel" and "-machine accel=" options are now incompatible with each other.
The deprecated "[hub_id name]" parameter tuple of 'hostfwd_add' / 'hostfwd_remove' has been removed. Use a "netdev_id" instead.
New deprecated options and features
The "-tb-size N" option has been deprecated. It is replaced by "-accel tcg,tb-size=N".
The virtio-blk SCSI passthrough feature (" -device virtio-blk,scsi=on") is deprecated. Use virtio-scsi instead.
The "r4k" mips machine has been deprecated. The "malta" machine should be used nowadays instead.
Support for using an AArch32 host system to run KVM guests has been deprecated (because the Linux kernel has dropped its support for this) and will be removed in a future version of QEMU. AArch32 guests on an AArch64 host are still supported.
Arm
Support for using an AArch32 host system to run KVM guests is now deprecated (because the Linux kernel has dropped its support for this) and will be removed in a future version of QEMU. AArch32 guests on an AArch64 host are still supported.
Emulation of the following architecture features is now implemented:
- ARMv8.1-VHE
- ARMv8.1-VMID16
- ARMv8.1-PAN
- ARMv8.1-PMU
- ARMv8.2-UAO
- ARMv8.2-DCPoP
- ARMv8.2-ATS1E1
- ARMv8.2-TTCNP
- ARMv8.3-RCPC
- ARMv8.3-CCIDX
- ARMv8.4-PMU
- ARMv8.4-RCPC
The Cortex-M7 CPU is now supported
New board: tacoma-bmc
New board: Netduino Plus 2
New board: Orangepi PC (orangepi-pc)
QEMU now correctly implements trapping of more EL1 system register accesses to EL2 (eg HCR_EL2 TID1, TID2 bits, HSTR_EL2)
The no-op system registers required for a "trivial Jazelle" implementation have been added
The DC CVAP and DC CVADP instructions are now supported
Support for blocking semiconsole SYS_READC
the i.MX RNGC device is now supported
the watchdog device is now implemented on the i.MX6 boards
The Cortex-R5 and -R5f CPUs now provide a PMU
The Exynos4210 SoC model now correctly handles DMA to/from the UARTs
The Aspeed AST2600 SoC model now includes the eMMC controller
Under KVM, we now by default stop and restart the guest generic timer counter when the VM is stopped and started so the guest OS doesn't see surprising time jumps. (This can be disabled with the kvm-no-adjvtime property.)
The Aspeed AST2400, AST2500, AST2600 SoCs now support the EHCI controller
The z2 and mainstone boards now permit booting with just a kernel image and no flash image file
The Allwinner SoC model now wires up the USB ports
The integratorcp board now wires up the audio codec controller
The versal board now implements the ADMA DMA controllers
TPM is now supported
The iMX25 now wires up the eSDHC controllers and the USB controllers
The iMX6 machines wire up the USB controllers
the gdbstub now supports SVE registers
virtio-iommu is now supported with machvirt (DT boot only)
HPPA
Artist graphics emulation added.
PS2 keyboard and mouse added to LASI chip.
Accept LDCW to addresses not aligned mod 16.
MIPS
Support for R4000 machine is announced to be deprecated, and will be removed from code base in QEMU 5.2.
Amended support for MemoryMapID CP0 register.
Amended support for WatchHi CP0 register.
Added support for GINVT instruction.
OpenRISC
Fixed a bug that prevented the DZF bit of the FPCSR being set.
PowerPC
pseries machine type
- No longer require a reconfiguration reboot for a guest selecting XIVE interrupt controller when ic-mode=dual
- Now consumes less host resources when running a KVM guest with XIVE (with a recent enough host kernel). This allows running more concurrent guests with KVM accelerated XIVE.
- New 'kernel-addr' property to control the load address for -kernel
- NVDIMMs with file backend now supported
- If a guest panics with the ibm,os-term RTAS call, the error message it supplies is now reported
- Added firmware assisted NMI (FWNMI) support
- SLOF updated to work with iommu_platform=on for virtio devices
- Better handling of devices hotplugged early in boot (before the ibm,client-architecture-support call)
powernv machine type
- Numerous improvements to the model
- Can now run KVM guests under a TCG emulated powernv machine
- Basic POWER10 support
Removed num-chips machine property, use -smp sockets=NN instead
Deprecated the compat= property on CPUs (it's been obsolete for a while with a pseries specific machine property)
Fixed a longstanding bug if using big-endian ABIv2 binaries with linux-user
Implemented new forms of the slbia instruction present in POWER9
RISC-V
The virt and sifive_u boards now have syscon device tree nodes, which allows the generic syscon drivers in Linux to control power/reboot.
The GDB stub now allows for D on rv32 and non-D on rv64.
The virt board now contains a Goldfish RTC.
Experimental support for version 0.5 of the draft hypervisor extension has been added.
s390
Adpater interrupt suppression is now available when running with KVM (previously disabled due to migration issues); support under tcg has already been available since 2.10
- enable by specifying the cpu feature "ais=on"
QEMU now warns when it fixes up odd memory sizes for compatibility on compat machines
- Only done on compat machines to avoid breaking incoming migrations. If you can, fix up the memory size on old machines or switch to a machine type >= 5.0, which supports 1M increments
- The automatic fixup may be removed in a future version.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.26 2020/02/06 16:46:17 kamil Exp $
d46 1
a46 1
+ nvmm="yes"
@
1.26
log
@nvmm: Merge NVMM support
NVMM v3 patchset pending upstream.
https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg01405.html
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.25 2019/04/24 13:59:32 ryoon Exp $
a2 1
configure: Add HAX support in NetBSD
d4 1
d6 1
a6 1
--- configure.orig 2020-02-06 16:24:52.903915848 +0000
d34 1
a34 1
@@@@ -387,6 +399,7 @@@@ kvm="no"
d42 1
a42 1
@@@@ -822,6 +835,7 @@@@ DragonFly)
d50 1
a50 1
@@@@ -1172,6 +1186,10 @@@@ for opt do
d61 1
a61 1
@@@@ -1768,6 +1786,7 @@@@ disabled with --disable-FEATURE, default
d69 1
a69 1
@@@@ -2758,6 +2777,20 @@@@ if test "$whpx" != "no" ; then
d90 15
a104 1
@@@@ -6522,6 +6555,7 @@@@ echo "KVM support $kvm"
d112 1
a112 1
@@@@ -7811,6 +7845,9 @@@@ fi
@
1.25
log
@Update to 4.0.0
Changelog:
Incompatible changes
The "handle" option to -fsdev and -virtfs has been removed. The "local" or "proxy" options should be used instead.
The "-virtioconsole" option has been removed. Use "-device virtconsole" instead.
The "-no-frame" option has been removed. It was only usable with SDL1.2, and support for this library has been suspended now.
The "-enable-hax" option has been removed. Use "-accel hax" instead.
The "-clock" option has been removed. It was only a "dummy" option without meaning since QEMU 1.7, so there is no replacement.
The legacy "ivshmem" device has been removed. Use "ivshmem-doorbell" or "ivshmem-plain" instead.
The x86 machine types "pc-0.10" and "pc-0.11" have been removed. Use a newer machine type instead.
The "irq" property of the "spapr-vscsi", "spapr-vlan" and "spapr-vty" devices has been removed with no replacement.
The "memory-backend-memfd" backend object type will be reported as unavailable on hosts systems without memfd sealing support. On previous versions, "memory-backend-memfd" was reported as available, but didn't work properly without sealing support.
HMP snapshot commands (such as "savevm", "loadvm" and "delvm") use only the snapshot tag, and not the ID any more, to identify snapshots. This removes ambiguity from the interface, but may require changing the HMP command in existing scripts.
New deprecated options and features
cpu-add QMP/HMP command
machine-types pc-0.12, pc-0.13, pc-0.14 and pc-0.15
qemu-nbd --partition=N option
The query-events QMP command has been superseded by the more powerful and accurate query-qmp-schema command.
The acl option to the "-vnc" argument has been replaced by the tls-authz and sasl-authz options.
The acl_show, acl_reset, acl_policy, acl_add, and acl_remove commands are deprecated with no replacement. Authorization for VNC should be performed using the pluggable QAuthZ objects.
QEMU_AUDIO_ environment variables and "-audio-help" are now deprecated. Use "-audiodev" instead.
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
Architercture specific summary:
Arm
Implement the ARMv8.0-SB extension
Implement the ARMv8.0-PredInv extension
Implement the ARMv8.1-HPD extension
Implement the ARMv8.1-LOR extension (as the trivial "no limited ordering regions provided" minimum)
Implement the ARMv8.2-FHM extension
Implement the ARMv8.2-AA32HPD extension
Implement the ARMv8.3-PAuth extension
Implement the ARMv8.3-JSConv extension
Implement the ARMv8.4-CondM extension
Implement the ARMv8.5-CondM extension
Implement the ARMv8.5-FRINT extension
And new boards
MIPS
Added support for I7200 CPU (nanoMIPS32 ISA + DSP ASE; system mode only).
Added support for I6500 CPU (MIPS64R6 ISA + MSA ASE + multicore features).
Added support for QMP-based querying of the available CPU types.
Added support for SAARI and SAAR configuration registers.
Added support for MTTCG (multi-threaded TCG).
Improved support for ITU (Interthread Communication Unit).
Improved support for Fulong 2E machine.
Improved end user documentation.
Fixed build for MIPS n32 hosts.
RISC-V
The virt board now supports PCI and USB.
The FS field of mstatus now supports three states (dirty, clean, and off).
The TSR, TW, and TVM fields of mstatus are now implemented.
The misa CSR is now writable.
The built-in gdbserver supports register lists via XML files.
The sifive_u machine supports SMP.
The SiFive UART supports TX interrupts.
The sifive_u machine has the correct number of PLIC interrupts.
x86
The HAX accelerator is now supported for POSIX hosts other than Darwin, including Linux and NetBSD.
Machines pc-* now support configuring firmware with -machine pflash0=ID0,pflash1=ID1 in addition to -drive if=pflash,... This permits use of -blockdev.
MPX is considered a failed experiment by Intel, and has thus been removed from all named CPU models. It is still accessible via "-cpu host".
PVH Linux images can be booted with "-kernel".
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.24 2019/02/13 05:16:12 kamil Exp $
d4 1
d6 1
a6 1
--- configure.orig 2019-04-23 18:14:45.000000000 +0000
d8 36
a43 3
@@@@ -815,6 +815,7 @@@@ FreeBSD)
;;
DragonFly)
d45 2
a46 1
+ hax="yes"
d49 59
a107 1
audio_possible_drivers="oss sdl pa"
@
1.24
log
@qemu: Add HAXM/NetBSD/amd64 support and fix NetBSD debug build
Bump PKGREVISION.
@
text
@d1 1
a1 1
$NetBSD$
d5 1
a5 1
--- configure.orig 2018-12-11 17:44:34.000000000 +0000
d7 1
a7 1
@@@@ -809,6 +809,7 @@@@ DragonFly)
d9 1
a9 1
NetBSD)
d13 2
a14 2
audio_drv_list="oss"
audio_possible_drivers="oss sdl"
@
1.23
log
@qemu: updated to 2.12.0
2.12.0:
Incompatible changes
The deprecated CLI options "-tdf", "-no-kvm-pit" and "-drive boot=on|off" have been removed (they only emitted a warning since QEMU 1.3.0).
The deprecated CLI option "-net channel" has been removed. You can use "-netdev user,guestfwd=..." instead.
The deprecated CLI option "-hdachs" has been removed. You can specify the disk geometry e.g. via -device ide-hd,cyls=c,heads=h,secs=s instead.
The deprecated way of configuring SCSI devices with "-drive if=scsi" on x86 has been removed. Use an appropriate SCSI controller together "-device scsi-hd" or "-device scsi-cd" and a corresponding "-blockdev" parameter instead.
The deprecated way of configuring a "host", "serial", "disk" or "net" USB device with "-usbdevice" has been removed. Use "-device usb-..." instead.
The deprecated HMP commands "usb_add" and "usb_del" have been removed. Use "device_add" and "device_del" as replacement instead.
The deprecated HMP commands "host_net_add" and "host_net_remove" have been removed. Use "netdev_add" and "netdev_remove" instead.
The deprecated way of dumping network traffic with "-net dump" has been removed. Use "-object filter-dump" instead.
The deprecated "spapr-pci-vfio-host-bridge" device has been removed (from qemu-system-ppc64). It is not needed for vfio since QEMU v2.6.0 anymore.
Deprecated options and features
qemu-system-ppcemb is deprecated. Use qemu-system-ppc instead.
The parameters "serial", "trans", "secs", "heads", "cyls" and "addr" of the "-drive" option are now deprecated. Use the corresponding options of "-device" instead.
The "-nodefconfig" option is now deprecated. Use "-no-user-config" instead.
The "-s390-squash-mcss" parameter for the s390-ccw-virtio machine is now deprecated. It has been made obsolete by allowing to put any device into any channel subsystem image (unrestricted cssids).
The parameter "handle" of the "-fsdev" and "-virtfs" options is now depecrated. Use "local" instead.
The qmp command "query-cpus" is now deprecated. Use the new "query-cpus-fast" qmp command instead, which does not interrupt all running vCPUs. (However, there is a known bug that in 2.12, the "query-cpus-fast" command reports bogus architecture information for all architectures except "x86" and "s390".)
While "-net" is not deprecated yet, you are encouraged to use the new option "-nic" instead of "-net", as it provides a simpler and better interface ("-nic user" replaces the old "-net nic -net user").
The "-no-frame" parameter is now deprecated and will be removed together with SDL 1.2 in a future release.
The "-balloon" parameter is deprecated, use "-device virtio-balloon" instead.
The "-rtc-td-hack", "-localtime" and "-startdate" parameters are deprecated. You can use the "-rtc" parameter instead.
The "handle" backend for 9pfs is deprecated.
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
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.
For x86, specifying a CPUID feature with both "+feature/-feature" and "feature=on/off" will cause a warning. The current behavior for this combination ("+feature/-feature" wins over "feature=on/off") will be changed so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively).
The read-only block drivers "bochs", "cloop" and "dmg" as well as "rbd" and "vvfat" in certain read-only configurations will no longer enable read-only mode automatically. It will be necessary to specify "read-only=on" explicitly on the command line and in QMP commands for the setup to keep working; the default "read-only=off" setting will result in an error.
On s390x, using KVM with a Linux host kernel version < 3.15 has been broken since QEMU version 2.10. This will not be fixed unless a need is communicated (otherwise the code will be removed in the near future, so that you need at least Linux kernel version 3.15 on the host to run KVM on System z)
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.22 2018/01/04 16:48:17 gson Exp $
d3 1
a3 1
Use ncursesw6-config; define NCURSES_WIDECHAR to fix building on Darwin (at least).
d5 1
a5 4
Check for posix_memalign in configure script instead of incorrectly
testing _POSIX_C_SOURCE in util/oslib-posix.c
--- configure.orig 2017-12-29 22:10:50.000000000 +0000
d7 8
a14 40
@@@@ -4542,6 +4542,21 @@@@ if compile_prog "" "" ; then
fi
##########################################
+# check if we have posix_memalign()
+
+posix_memalign=no
+cat > $TMPC << EOF
+#include
+int main(void) {
+ void *p;
+ return posix_memalign(&p, 8, 8);
+}
+EOF
+if compile_prog "" "" ; then
+ posix_memalign=yes
+fi
+
+##########################################
# check if we have posix_syslog
posix_syslog=no
@@@@ -5509,6 +5524,7 @@@@ echo "preadv support $preadv"
echo "fdatasync $fdatasync"
echo "madvise $madvise"
echo "posix_madvise $posix_madvise"
+echo "posix_memalign $posix_memalign"
echo "libcap-ng support $cap_ng"
echo "vhost-net support $vhost_net"
echo "vhost-scsi support $vhost_scsi"
@@@@ -5982,6 +5998,9 @@@@ fi
if test "$posix_madvise" = "yes" ; then
echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
fi
+if test "$posix_memalign" = "yes" ; then
+ echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
+fi
if test "$spice" = "yes" ; then
echo "CONFIG_SPICE=y" >> $config_host_mak
@
1.22
log
@emulators/qemu: check for posix_memalign in configure script
qemu incorrectly checks for the presence of posix_memalign() by
testing whether the preprocessor symbol _POSIX_C_SOURCE is defined.
This causes qemu to use valloc() instead of posix_memalign() on NetBSD,
even on versions where posix_memalign() is supported, wasting
memory when the required alignment is smaller than a page. Fix this
by checking for posix_memalign() support in the configure script.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.21 2017/12/14 02:03:53 kamil Exp $
@
1.21
log
@qemu: Upgrade to 2.11.0
pkgsrc changes
==============
Remove merged patches, mostly for SmartOS. There are more to go and there
is a call for volunteers to step in as a maintainer and help to upstream the
remaining ones.
SmartOS as host support is scheduled to be removed in the next major version
of qemu.
upstream changes
================
The full list of changes are available at:
https://wiki.qemu.org/ChangeLog/2.11
Highlights include:
* Improved support for running Hyper-V on top of KVM
* New hotpluggable PCIe-to-PCI bridge device with SHPC support
* Experimental GPUDirect support for Nvidia passthrough devices (p2p DMA)
* Better performance using integrated LUKS support for block devices
* Added a qemu-block-drivers man page
* TPM emulation support
* Ability to hotplug a watchdog device and specify watchdog actions at
runtime
* UI: improved client support for VNC via websockets
* UI: better keymap support for SDL/GTK/Cocoa front-ends and various input
devices
* ARM: support for Smartfusion2 board
* ARM: improved performance for PCI passthrough devices using INTx
* ARM: improved XEN support for AArch64 guests
* OpenRISC: experimental support for SMP
* PowerPC: fixes for Mac machine types
* PowerPC: pseries: support for virtual SMT modes in guests
* s390: support for virtio-input-ccw and virtio-gpu-ccw
* s390: support for CPU hotplug via newer device_add interface
* s390: experimental support for multiple vcpu threads under full emulation
* SPARC: sun4u: support for sunhme (Happy Meal Ethernet) NIC
* SPARC: sun4u: use of Simba PCI bridges to better match Ultra 5 PCI
topology
* and lots more...
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.20 2017/08/30 21:07:10 kamil Exp $
d5 4
a8 1
--- configure.orig 2017-12-13 17:27:20.000000000 +0000
d10 40
a49 16
@@@@ -3165,12 +3165,13 @@@@ if test "$curses" != "no" ; then
curses_inc_list="$($pkg_config --cflags ncurses 2>/dev/null):"
curses_lib_list="$($pkg_config --libs ncurses 2>/dev/null):-lpdcurses"
else
- curses_inc_list="$($pkg_config --cflags ncursesw 2>/dev/null):-I/usr/include/ncursesw:"
- curses_lib_list="$($pkg_config --libs ncursesw 2>/dev/null):-lncursesw:-lcursesw"
+ curses_inc_list="$(@@PREFIX@@/bin/ncursesw6-config --cflags 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(@@PREFIX@@/bin/ncursesw6-config --libs 2>/dev/null):-lncursesw:-lcursesw"
fi
curses_found=no
cat > $TMPC << EOF
#include
+#define NCURSES_WIDECHAR 1
#include
#include
int main(void) {
@
1.20
log
@Restore the original patch for curses_inc_list and curses_lib_list
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.19 2017/08/30 21:00:46 kamil Exp $
a2 1
Don't use gld on SunOS
d5 1
a5 1
--- configure.orig 2017-08-30 16:50:40.000000000 +0000
d7 1
a7 9
@@@@ -747,7 +747,6 @@@@ SunOS)
solaris="yes"
make="${MAKE-gmake}"
install="${INSTALL-ginstall}"
- ld="gld"
smbd="${SMBD-/usr/sfw/sbin/smbd}"
if test -f /usr/include/sys/soundcard.h ; then
audio_drv_list="oss"
@@@@ -3117,12 +3116,13 @@@@ if test "$curses" != "no" ; then
@
1.19
log
@qemu: Upgrade to 2.10.0
pkgsrc changes:
- remove stray conflict with qemu-bin - I cannot find references to it in
pkgsrc
- drop mentions of NetBSD version < 6.0 - it's already broken there
regardless of the directives and not supported
- remove stray BUILDLINK_PASSTHRU_DIRS and BUILDLINK_PASSTHRU_RPATHDIRS
this is redundant with the default pkgsrc framework defines
- not yet ported to 3.x as of 2.10.0, newer versions get initial patches
- remove ivshmem - it's not a user settable option, it requires as of now
Linux kernel API (eventfd) and it builds only for Linux now (no longer
for BSD and SunOS)
- add test target - all tests pass on NetBSD 8.99.2 (with disabled PaX
MPROTECT)
- sync PLIST
- drop patches that are no longer needed, proper fixes merged upstream
upstream changelog
==================
The full list of changes are available at:
http://wiki.qemu.org/ChangeLog/2.10
Highlights include:
* Support for ACPI NUMA distance info and control over CPU NUMA
assignments via '-numa cpu' parameters
* Support for LUKS encryption format in qcow2 images
* Monitor/Management interface improvments: additional debug
information available through 'info ramblock/cmma/register/qtree',
support for viewing connected clients via 'info vnc', improved
parsing support for QMP protocol, and other additional commands
* QXL and virtio-gpu support for controlling default display resolution
* Support for vhost-user-scsi devices
* NVMe emulation support for Write Zeroes command and Controller
Memory Buffers
* Guest agent support for querying guest hostname, users, timezone, and
OS version/release information
* ARM: KVM support for Raspberry Pi 3
* ARM: emulation support for MPS2/MPS2+ FPGA-based dev boards
* ARM: zynq: SPIPS flash support
* ARM: exynos4210: hardware PRNG device, SDHCI, and system poweroff
* Microblaze: support for CPU versions 9.4, 9.5, 9.6, and 10.0
* MIPS: support for Enhanced Virtual Addressing (EVA)
* MIPS: initrd support for kaslr-enabled kernels
* OpenRISC: support for shadow registers, idle states, and
numcores/coreid/EVAR/EPH registers
* PowerPC: Multi-threaded TCG emulation support
* PowerPC: OpenBIOS VGA driver for MacOS guests
* PowerPC: pseries: KVM and emulation support for POWER9 guests
* PowerPC: pseries: support for hash page table resizing
* s390: channel device passthrough support via vfio-ccw
* s390: support for channel-attached 3270 "green screen" devices for
use as guest consoles or additional TTYs
* s390: improved support for PCI (AEN, AIS, and zPCI)
* s390: support for z14 CPU models and netboot/TFTP via CCW BIOS,
* s390: TCG support for atomic "LOAD AND x" and "COMPARE SWAP"
operations, LOAD PROGRAM PARAMETER, extended facilities, CPU type,
and many more less-common instructions.
* SH: TCG support for host atomic instructions for emulating tas.b and
gUSA (user-space atomics), and support for fpchg/fsrra instructions
* SPARC: fixes for booting Solaris 2.6 on sun4m/OpenBIOS machines
* x86: Q35 MCH supports TSEG higher than 8MB
* x86: SSE register access via gdbstub
* Xen: support for multi-page shared rings, and 9pfs/virtfs backend
* Xtensa: sim machine console can be directed to chardev via -serial
* and lots more...
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.18 2017/04/15 17:38:48 riastradh Exp $
d22 2
a23 2
+ curses_inc_list="$(@@PREFIX@@/bin/ncursesw6-config --cflags ncursesw 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(@@PREFIX@@/bin/ncursesw6-config --libs ncursesw 2>/dev/null):-lncursesw:-lcursesw"
@
1.18
log
@Restore @@PREFIX@@, not accidental personal /dist/pkg directory.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.17 2017/02/27 05:19:29 adam Exp $
a4 2
add check for shm_open
avoid bad substitution
d6 1
a6 1
--- configure.orig 2016-12-20 20:16:44.000000000 +0000
d8 1
a8 1
@@@@ -631,7 +631,6 @@@@ SunOS)
d14 3
a16 3
needs_libsunmath="no"
solarisrev=$(uname -r | cut -f2 -d.)
@@@@ -2928,23 +2927,23 @@@@ if test "$curses" != "no" ; then
d22 2
a23 2
+ curses_inc_list="$(@@PREFIX@@/bin/ncursesw6-config --cflags 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(@@PREFIX@@/bin/ncursesw6-config --libs 2>/dev/null):-lncursesw:-lcursesw"
a31 75
- const char *s = curses_version();
wchar_t wch = L'w';
setlocale(LC_ALL, "");
resize_term(0, 0);
addwstr(L"wide chars\n");
addnwstr(&wch, 1);
add_wch(WACS_DEGREE);
- return s != 0;
+ return 0;
}
EOF
IFS=:
@@@@ -3762,6 +3761,27 @@@@ if compile_prog "" "" ; then
fallocate_zero_range=yes
fi
+# check for shm_open
+shm_open=no
+cat > $TMPC << EOF
+#include
+#include
+#include
+#include // for NULL
+
+int main(void)
+{
+ shm_open(NULL, O_RDWR, 0644);
+ return 0;
+}
+EOF
+if compile_prog "" "" ; then
+ shm_open=yes
+elif compile_prog "" "-lrt" ; then
+ LIBS="$LIBS -lrt"
+ shm_open=yes
+fi
+
# check for posix_fallocate
posix_fallocate=no
cat > $TMPC << EOF
@@@@ -4041,8 +4061,13 @@@@ fi
cat > $TMPC <
#include
+#include
+#include
+#include
+
int main(void) {
timer_create(CLOCK_REALTIME, NULL, NULL);
+ shm_open(NULL, O_RDWR, 0644);
return clock_gettime(CLOCK_REALTIME, NULL);
}
EOF
@@@@ -4797,7 +4822,9 @@@@ if test "$want_tools" = "yes" ; then
tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
tools="qemu-nbd\$(EXESUF) $tools"
- tools="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
+ if test "$shm_open" = "yes" ; then
+ tools="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
+ fi
fi
fi
if test "$softmmu" = yes ; then
@@@@ -5303,6 +5330,9 @@@@ fi
if test "$fallocate_zero_range" = "yes" ; then
echo "CONFIG_FALLOCATE_ZERO_RANGE=y" >> $config_host_mak
fi
+if [ "$shm_open" = "yes" ] ; then
+ echo "CONFIG_SHM_OPEN=y" >> $config_host_mak
+fi
if test "$posix_fallocate" = "yes" ; then
echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
fi
@
1.17
log
@Revision 2 changes:
* Fixed building with C++.
* Fixed building on Darwin (PR 51899).
* Added GTK3 as an option.
* Switched from SDL-1 to SDL-2.
* Depend and enable support for: lzo, jemalloc, snappy, png, curl, jpeg.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.16 2017/01/08 02:26:47 kamil Exp $
d24 2
a25 2
+ curses_inc_list="$(/dist/pkg/bin/ncursesw6-config --cflags 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(/dist/pkg/bin/ncursesw6-config --libs 2>/dev/null):-lncursesw:-lcursesw"
@
1.17.2.1
log
@Pullup ticket #5291 - requested by sevan
emulators/qemu: build fix
Revisions pulled up:
- emulators/qemu/distinfo 1.124
- emulators/qemu/patches/patch-configure 1.18
---
Module Name: pkgsrc
Committed By: riastradh
Date: Sat Apr 15 17:38:48 UTC 2017
Modified Files:
pkgsrc/emulators/qemu: distinfo
pkgsrc/emulators/qemu/patches: patch-configure
Log Message:
Restore @@PREFIX@@, not accidental personal /dist/pkg directory.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.17 2017/02/27 05:19:29 adam Exp $
d24 2
a25 2
+ curses_inc_list="$(@@PREFIX@@/bin/ncursesw6-config --cflags 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(@@PREFIX@@/bin/ncursesw6-config --libs 2>/dev/null):-lncursesw:-lcursesw"
@
1.16
log
@Add support in qemu for native NetBSD curses(3)
curses_version() is ncurses specific function available only in ncurses and
used just in configure.
Bump revision to 1
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.15 2016/12/30 10:00:16 ryoon Exp $
d4 1
d18 1
a18 1
@@@@ -2928,8 +2927,8 @@@@ if test "$curses" != "no" ; then
d24 2
a25 2
+ curses_inc_list="$(@@PREFIX@@/bin/ncursesw6-config --cflags 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_lib_list="$(@@PREFIX@@/bin/ncursesw6-config --libs 2>/dev/null):-lncursesw:-lcursesw"
d29 2
a30 1
@@@@ -2937,14 +2936,13 @@@@ if test "$curses" != "no" ; then
d46 1
a46 1
@@@@ -3762,6 +3760,27 @@@@ if compile_prog "" "" ; then
d74 1
a74 1
@@@@ -4041,8 +4060,13 @@@@ fi
d88 1
a88 1
@@@@ -4797,7 +4821,9 @@@@ if test "$want_tools" = "yes" ; then
d99 1
a99 1
@@@@ -5303,6 +5329,9 @@@@ fi
@
1.15
log
@Update to 2.8.0
Changelog:
== System emulation ==
=== Incompatible changes ===
* The number of allow PCI host bridges for pSeries machine was reduced from 256 to 31 (more can be configured by setting up MMIO windows manually).
* Removed support for tftp:// in the block layer, since this has been broken forever for files bigger than 256KB.
=== 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.
* For x86, specifying a CPUID feature with both "+feature/-feature" and "feature=on/off" will cause a warning. The current behavior for this combination ("+feature/-feature" wins over "feature=on/off") will be changed so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively).
=== ARM ===
* Improvements to the Aspeed board.
* Support for HLT semihosting traps in AArch32 mode (both ARM and Thumb).
* The ACPI tables for the "virt" machine type support ITS.
* The Cadence GEM device now supports multiple priority queues through the num-priority-queues property.
* The STM32F2xx board (Netduino 2) now includes ADC and SPI devices.
==== KVM ====
=== MIPS ===
* Support for 24KEc CPUs.
=== PowerPC ===
* Support for POWER9 CPUs.
* Improvements for the new "powernv" platform.
==== pSeries ====
* PCI host bridges can be associated to NUMA nodes.
* Support for more than 1 TiB of guest memory.
* Support for more than 64 GiB of MMIO window in a PCI host bridge.
* Support for the "-prom-env" parameter
=== s390 ===
* Support for CPU models.
* Support for virtio-ccw revision 2.
=== SH ===
=== SPARC ===
=== TileGX ===
=== Tricore ===
=== x86 ===
* Support for several new CPUID features related to AVX-512 instruction set extensions.
* The emulated IOAPIC (used by TCG and, with KVM, if the "-machine kernel_irqchip" option has the value "off" or "split") now defaults to version 0x20, which supports directed end-of-interrupt messages.
* Support for Extended Interrupt Mode (EIM) in the intel_iommu device. EIM requires KVM (Linux v4.7 or newer, for x2APIC support) and "-machine kernel-irqchip=split"; it is enabled automatically if interrupt remapping is enabled ("-machine kernel-irqchip=split -device intel_iommu,intremap=on").
* Support for up to 288 CPUs with the Q35 machine types. 256 or more CPUs are only supported if IOMMU and EIM are enabled.
==== Xen ====
* Support for unplugging SCSI disk.
* Support for SUSE xenlinux-compatible device unplug.
=== Device emulation and assignment ===
* QEMU now includes a generic loader pseudo-device that lets you load multiple images or values into memory at startup. This device is documented in {{src|path=docs/generic-loader.txt}}.
==== ACPI ====
* Support for hotplugging of NVDIMM devices (_FIT)
==== Block devices ====
==== Network devices ====
* Support for fault tolerance based on coarse-grained lock stepping (COLO).
==== SCSI ====
==== PCI/PCIe ====
* The sample EDU device now supports MSI.
* [http://git.qemu.org/?p=qemu.git;a=blob;f=docs/pcie.txt;h=9fb20aaed9f41c302419206e1201d151c35e5a1c;hb=HEAD PCI Express Guidelines documentation] has been added for advice on topology and PCI vs PCIe.
==== USB ====
==== VFIO ====
==== virtio ====
* New device vhost-vsock.
* Initial support for graceful handling of guest errors (i.e. QEMU should not exit on guest errors).
* Support for new virtio-crypto device.
==== Xen ====
* Support for grant copy.
=== Character devices ===
=== Crypto subsystem ===
* Support for more hash algorithms for PBKDF.
* Support for CTR mode.
=== GUI ===
* SPICE can use pure OpenGL rendering if "gl=on" is specified.
=== Monitor ===
=== Migration ===
* Support for fault tolerance based on coarse-grained lock stepping (COLO).
=== Network ===
=== Block devices and tools ===
* More QMP commands support node-name (block-stream, block-commit, blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internal-sync, blockdev-snapshot-internal-sync, change-backing-file, drive-backup, drive-mirror, nbd-server-add).
* The BLOCK_IO_ERROR event now includes the node name.
* More QMP commands accept device model names (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
* The DEVICE_TRAY_MOVED event now includes the device id.
* Throttling now applies to the guest device only, and not to block jobs or the NBD server.
* drive-backup and blockdev-backup support writing out backups in compressed format.
* The LUKS format now can configure the PBKDF iteration count.
* block-stream supports streaming from a backing file to another backing file.
* Support for replication, for coarse-grained lock stepping (COLO) fault tolerance.
* New "dd" subcomamand of qemu-img.
* The DMG driver can be compiled to a separate driver, so as to make QEMU's dependency on libbz2 optional.
* Support for iSER in QEMU's iSCSI initiator through a iser:// URI.
* The NBD client and server support the NBD_CMD_WRITE_ZEROES extension.
* Raw images support "offset" and "size" options to access only a part of the file or device.
=== Tracing ===
* New tracing backend "syslog".
* Support for multiple "-d trace:PATTERN" command-line arguments.
=== CLI options ===
== User-mode emulation ==
=== Removed target support ===
* The unicore32-linux-user target implemented a different system call ABI from mainline Linux for this architecture. Support for it has been dropped.
=== New functionality ===
* Added support for more syscalls including preadv, pwritev, syslog.
* Major scalability improvements for multi-threaded programs (ARM, SPARC, x86).
* QEMU can now understand and generate fence and cmpxchg operations.
== TCG ==
* New TCG primitives have been added for safely modelling architectural synchronisation instructions (e.g. atomics, LL/SC, LOCK prefixes). arm, aarch64, alpha and x86 targets now use these primitives for multi-threaded linux-user programs. TCG target maintainers are encouraged to port their front-ends to use the new facilities.
* The TCG backends now emit appropriate barrier instructions for frontend barriers when running multi-threaded programs. However, emulating a strongly-ordered architecture (e.g., x86) on a weakly-ordered one (e.g., ARM or POWER) will not work yet.
* tb_flush() is finally thread-safe meaning multi-threaded programs are less likely to crash when the translation buffer is reset
* lock contention in the main cpu run-loop has been reduced improving performance for multi-threaded code
* a number of races were identified and fixed
A lot of the TCG work merged in this cycle where prerequisites for supporting multi-threaded system emulation (MTTCG). While full MTTCG support is expected to be merged in the next development cycle, multi-threaded linux-user programs will already benefit from this work.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.14 2016/09/04 09:21:04 ryoon Exp $
d28 17
a44 1
@@@@ -3762,6 +3761,27 @@@@ if compile_prog "" "" ; then
d72 1
a72 1
@@@@ -4041,8 +4061,13 @@@@ fi
d86 1
a86 1
@@@@ -4797,7 +4822,9 @@@@ if test "$want_tools" = "yes" ; then
d97 1
a97 1
@@@@ -5303,6 +5330,9 @@@@ fi
@
1.14
log
@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.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.13 2016/05/15 01:25:15 ryoon Exp $
d7 1
a7 1
--- configure.orig 2016-09-02 15:34:17.000000000 +0000
d9 1
a9 1
@@@@ -625,7 +625,6 @@@@ SunOS)
d17 12
a28 1
@@@@ -3706,6 +3705,27 @@@@ if compile_prog "" "" ; then
d56 1
a56 1
@@@@ -3955,8 +3975,13 @@@@ fi
d70 1
a70 1
@@@@ -4607,7 +4632,9 @@@@ if test "$want_tools" = "yes" ; then
d81 1
a81 1
@@@@ -5114,6 +5141,9 @@@@ fi
@
1.13
log
@Update to 2.6.0
Changelog:
System emulation
Incompatible changes
The aio=native option to "-drive" now requires the cache=none option, instead of silently disabling itself for other cache modes. The newly invalid combination had been warning since QEMU 2.3.
Specifying block device parameter aio=native is now an error on POSIX systems if qemu is compiled without libaio support. The newly invalid combination had been warning since QEMU 2.3.
The experimental x-drive option for the sdhci-pci device has been removed. Instead of passing a drive directly to the SD controller device you now must create an SD card object (which will automatically be plugged into the SD controller), so "-device sdhci-pci,x-drive=mydrive -drive id=mydrive,[...]" becomes "-device sdhci-pci -device sd-card,drive=mydrive -drive id=mydrive,[...]".
The s390-virtio machine has been removed.
Machine types pc-q35-1.4, pc-q35-1.5, pc-q35-1.6, pc-q35-1.7, pc-q35-2.0, pc-q35-2.1, pc-q35-2.2 and pc-q35-2.3 have been removed.
The "virt" machine type's flash device has changed when TrustZone is active ("-machine virt,secure=on"). The first flash device is only available in secure memory, while the second is available in non-secure memory too.
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.
The original qcow2 image encryption is fatally flawed, and support for it will be disabled entirely from the system emulators. It'll remain 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 if raw files are acceptable, while a future release will integrate luks into qcow2 natively.
A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
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
Support for a separate EL3 address space
System mode supports BE8 and BE32. Note that qemu-system-arm can emulate both big-endian and little-endian guests (unlike user-mode emulation which has separate qemu-arm and qemu-armeb binaries).
Support for the SETEND instruction, used most notably on Raspbian through the arm-mem library (previously known as libcofi).
Faster boot thanks to DMA support in fw_cfg
The "virt" machine type supports a virtual power button and the "system_powerdown" monitor command
The "virt" machine type supports configuring network cards with -nic in addition to -netdev
The RAM limit for the "virt" machine type is now 255GB
The "xlnz-zynqmp" machine type now includes SPI controllers
The "xlnx-ep108" machine type now supports SPI flash
New partial Raspberry Pi 2 emulation with "raspi2" machine type. For now, it can boot older releases of Windows and Raspbian, but lacks a number of devices including USB.
New palmetto-bmc machine type using the new, partial ASPEED AST2400 SoC implementation
KVM
Support for guest debugging (software and hardware breakpoints, single step) on AArch64
MIPS
Support for FPU and MSA in KVM guests
Support for R6 Virtual Processors
Initial support for Cluster Power Controller and Global Configuration Registers allowing the guest to control the start of Virtual Processors
Support for Inter-Thread Communication Unit
Support for MAAR registers in P5600 CPU
PowerPC
Improved support for migration of g3beige and mac99 machines
Fix serial ports for g3beige and mac99 machines (OpenBIOS)
The gdb stub supports the VSX instruction set extensions
pSeries
pSeries machine types starting at pseries-2.6 use XHCI as the USB host controller instead of OHCI
Support for more hypercalls (H_SET_SPRG0, H_SET_DABR, H_SET_XDABR and H_PAGE_INIT)
Support for EEH on assigned PCI devices can use the normal spapr-pci-host-bridge instead of the special spapr-pci-vfio-host-bridge.
s390
Fixes and improvements in s390x PCI support
Support for hotplug of s390x cpus via cpu-add
Support for booting from virtio-scsi devices in the s390-ccw bios
SH
SPARC
sun4m: Fix for ldstub instruction resolves several 32-bit Solaris bugs (MUTEX_HELD hang, libC error, Java WebStart segfault)
sun4u: FreeBSD 10.3+ can now run under qemu-system-sparc64 in -nographic mode
TileGX
Tricore
Support for context management, illegal opcode and opd traps
Support for FPU instructions
x86
TCG
Support for the XSAVE/XSAVEOPT, MPX, FSGSBASE and PKE features
KVM
Support for "split irqchip". In this mode, QEMU emulates the IOAPIC, PIC (i8259) and PIT (i8254) devices while leaving the local APIC emulation to the kernel. This mode reduces the attack surface of KVM.
Support for the new PKU feature found in some Skylake processors
Support for migrating the TSC rate
Xen
Q35
Support resume (S3)
Support for legacy Windows guests (XP/2003)
Device emulation and assignment
New IPMI emulation subsystem. QEMU can now emulate an internal BMC or attach to an external BMC simulator such as OpenIPMI's lanserv. IPMI however is not yet exposed in SMBIOS and ACPI tables (do we want to docume?)
FIXME: what's the state of nvdimm?
ACPI
The floppy disk controller's characteristics are now exposed in the ACPI tables, which makes it possible to use floppies on Windows together with UEFI firmware.
Block devices
The floppy disk consk or an empty disk to a 2.88 MB disk
Improved compatibility of the SD device model with various operating systems and firmwares
The NVMe device supports the "bootindex" property.
The SDHCI device supports reset.
ivshmem
No longer available on hosts lacking eventfd(2), because inter-vm interrupts don't work there
New devices ivshmem-plain and ivshmem-doorbell, fully backwards compatible for guests, notable differences to ivshmem:
PCI revision is 1 instead of 0
ivshmem role=master becomes master=on, role=peer becomes master=off
ivshmem x-memdev=ID becomes ivshmem-plain memdev=ID
ivshmem shm=NAME,size=SZ becomes ivshmem-plain memdev=ID, with -object memory-backend-file,id=ID,mem-path=/dev/mem/NAME,size=SZ,share
ivshmem chardev=ID becomes ivshmem-doorbell,chardev=ID
Property ioeventfd defaults to on instead of off
ivshmem-plain never has MSI-X capability, and ivshmem-doorbell always has MSI-X capability
Device ivshmem is deprecated, and its experimental property x-memdev is gone
Interrupting a peer that reuses an unplugged peer's ID works again (broken in v1.2.0)
Unplug no longer destroys the character device, for consistency with other devices
The funny "no shared memory, yet" state is no longer guest-visible, and can no longer fail or mess up migration
Guests may require PCI revision 1 to make sure they're not exposed to the funny state
docs/specs/ivshmem-spec.txt rewritten for completeness and accuracy.
SCSI
Support for the LSI SAS1068 HBA (also known as "MPT Fusion"). Note that some operating systems will not recognize disks attached to this adapter, unless the disks are assigned a world-wide name (WWN).
PCI/PCIe
PCIe Multi-root support (using the new pxb-pcie root-compex)
USB
MTP: initial support for events
VFIO
Support for AMD XGBE platform passthrough
New sysfsdev property provides a more general way to specify the device to attach to.
Provided PCI option ROMs are fixed to include the same vendor and device id as the device exposed to the guest. This facilitates changing the ids of the devices.
virtio
Performance improvements via optimized vring accesses
The balloon driver statistics now include the amount of available memory (corresponding to "Available" in /proc/meminfo for Linux guests).
Character devices
The socket character device backend can now enable TLS over TCP connections, acting either as a TLS server:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0,server \
-device isa-serial,chardev=s0 \
...other args...
or a TLS client:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0 \
-device isa-serial,chardev=s0 \
...other args...
If operating in server mode, the same set of TLS credentials can be used for both character devices and the VNC server
All character devices can have their output logged to a plain file
$QEMU -chardev stdio,id=mon0,logfile=monitor.log \
-mon chardev=mon0 \
...other args...
will result in logging of all output on the HMP monitor. The logappend parameter controls whether the file is truncated at startup, defaulting to append.
GUI
SDL2 and SPICE now support OpenGL and virgl. For SPICE, Unix sockets are the only usable transport when OpenGL is enabled.
The "-vnc" and "-display vnc" options support ipv4=off and ipv6=off. Previously, only "ipv4" and "ipv6" were available.
Support getting input events directly from linux evdev devices, using "-object input-linux,id=$name,evdev=/dev/input/event$nr"
Support for ncurses on Windows.
Monitor
Support for a new "detach" option to "dump-guest-memory". The option dumps memory in the background. Progress can be queried using the new commands "info dump" (human monitor) and "query-dump" (QMP), as well as through the QMP event DUMP_COMPLETED.
Support for a new command "input-send-event" replacing the previous experimental command "x-input-send-event".
The human monitor command "drive_add -n" allows creating block devices that do not have a BlockBackend (similar to QMP blockdev-add).
Migration
Postcopy is not experimental anymore; the x-postcopy-ram capability was renamed to postcopy-ram.
Network
SLIRP now supports IPv6 for ICMP, UDP, TCP and TFTP.
mirror filter which can mirror traffic from netdev to socket chardev, vice versa.
redirector filter which can redirect traffic from netdev to socket chardev, vice versa.
Secret passing system
There is a new standard mechanism for securely passing secret credentials to QEMU, which will be used in combination with other subsystems. For example, network block device passwords, block device decryption passphrases, or TLS private key passwords can all use the same mechanism.
Passing credentials inline (insecure, only for developer testing)
$QEMU -object secret,id=sec0,data=letmein
Passing credentials via a plain file
$QEMU -object secret,id=sec0,file=mypassword.txt
Passing credentials via a base64 encoded file
$QEMU -object secret,id=sec0,file=mypassword.txt,format=base64
Passing credentials inline, encrypted with a master key (recommended for management apps)
$QEMU -object secret,id=master0,file=mykey.b64,format=base64 \
-object secret,id=sec0,data=[base64 ciphertext],\
keyid=master0,iv=[base64 IV],format=base64
TLS credential handling
It is now possible to use encrypted TLS private keys with credentials for TLS servers/clients in QEMU. The password for unlocking the private key is provided by a secret object whose id is specified via the passwordid' property
$QEMU -object secret,id=tlskey0,file=mypassword.txt \
-object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server,passwordid=tlskey0 \
...other args...
Block devices
Block device throttling now support specifying a burst length as well. While previously the burst could only be specified as a total number of IOPS (e.g. 10000 IOPS), more complex specifications such as "10000 IOPS for 10 seconds" are now possible. Note that, because of the implementation of the algorithm, a guest that is allowed "10000 IOPS for 10 seconds" will also be allowed to perform for example 5000 IOPS for 20 seconds.
The curl block device driver now supports HTTP authentication and HTTP proxy authentication via the new properties 'username', 'password-secret', 'proxy-username' and 'proxy-password-secret'.
$QEMU -object secret,id=sec0,file=password.txt \
-object secret,id=sec1,file=proxy-password.txt \
-drive driver=http,host=localhost,port=443,username=fred,password-secret=sec0,proxy-username=bob,proxy-password-secret=sec1 \
...other args...
The RBD block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.b64,format=base64 \
-drive driver=rbd,filename=rbd:pool/image:id=myname:auth_supported=cephx,password-secret=sec0 \
...other args...
The iSCSI block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.txt \
-iscsi user=fred,password-secret=sec0 \
-drive file=iscsi://192.168.122.1:3260/iqn.2013-12.com.example%3Aiscsi-chap-netpool/1
NB this syntax requires that all iSCSI backed drives use the same password
The qemu-io tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect qemu-io to an NBD server using TLS
qemu-io -c "read 0 512" \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
The qemu-nbd tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect qemu-nbd to an HTTP server with authentication and export it over NBD using TLS
qemu-nbd --readonly \
--object secret,id=sec0,file=passwd.txt \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
The qemu-img tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to a remote HTTP server with authentication
qemu-img info --object secret,id=sec0,file=passwd.txt \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
Support for deleting snapshots on Sheepdog devices.
The NBD client and server now support use of TLS. When enabled, the server will mandate that the client also enable TLS and drop any client which attempts to continue in plain text. To run a qemu-nbd server with TLS:
qemu-nbd --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--tls-creds tls0 \
/path/to/disk/image
To connect to a server that requires TLS with qemu-img:
qemu-img info --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
To start a VM pointing to the NBD server
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-drive driver=nbd,host=localhost,port=10809,tls-creds=tls0 \
...other args...
The NBD server gained support for specifying an export name. When the client negotiates use of the new style NBD protocol the default export name is "". The --exportname argument allows this to be customized:
qemu-nbd --exportname myvol /path/to/myvol.qcow2
QEMU gained support for volumes formatted with the LUKSv1 data format. To format a new LUKS volume
qemu-img create -f luks \
--object secret,id=sec0,file=passphrase.txt \
-o key-secret=sec0 \
demo.luks 10G
To boot a guest from a LUKS volume:
$QEMU -object secret,id=sec0,file=passphrase.txt \
-drive driver=luks,key-secret=sec0,file=demo.luks \
...other args...
The LUKS implementation is intended to be compatible with that used by cryptsetup/dm-crypt, so it should be possible to use disk images interchangeably between them. The only caveat is that some less common cipher/hash algorithms are not yet supported by QEMU. It is also not yet possible to manage key-slots with qemu-img.
TCG
Record/replay support extended to cover character devices.
Tracing
The "stderr" tracing backend was replaced by the "log" tracing backend, which is now the default. This backend prints tracing messages to the destination specified with the "-D" option.
In addition to the existing "-trace file=...", tracepoints can be enabled using "-trace [enable=]...". The new option also supports globbing, as in "-trace bdrv_aio_*".
In addition to the existing "-trace file=...", tracepoints can be enabling using "-d trace:...". This option also supports globbing, as in "-d trace:bdrv_aio_*".
When using "-daemonize", the "-D" option also provides the file to which QEMU's stderr output will be redirected.
TCG supports a new "-dfilter" option to limit exec, out_asm, op and op_opt logging to a range of guest physical addresses. ARM also applies the filter to in_asm logging; this will be extended to other targets in future releases (FIXME: probably should do it now instead...)
A "%d" substring in the log file name is replaced with QEMU's pid.
User-mode emulation
The default CPU for ppc64 and ppc64le is now POWER8
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.12 2016/03/24 15:21:10 khorben Exp $
d7 1
a7 1
--- configure.orig 2016-05-11 15:56:07.000000000 +0000
d9 1
a9 1
@@@@ -624,7 +624,6 @@@@ SunOS)
d16 2
a17 2
solarisrev=`uname -r | cut -f2 -d.`
@@@@ -3672,6 +3671,27 @@@@ if compile_prog "" "" ; then
d45 1
a45 1
@@@@ -3935,8 +3955,13 @@@@ fi
d59 1
a59 1
@@@@ -4583,7 +4608,9 @@@@ if test "$want_tools" = "yes" ; then
d70 1
a70 1
@@@@ -5074,6 +5101,9 @@@@ fi
@
1.12
log
@Avoid a "bad substitution" error in the configure script
This fixes building emulators/qemu on netbsd-7 (amd64).
On a related note, it may also make sense to include
security/nettle/buildlink3.mk to the build.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.11 2016/03/06 19:41:24 dbj Exp $
d7 1
a7 1
--- configure.orig 2015-12-16 22:04:48.000000000 +0000
d9 1
a9 1
@@@@ -650,7 +650,6 @@@@ SunOS)
d59 1
a59 1
@@@@ -4568,7 +4593,9 @@@@ if test "$want_tools" = "yes" ; then
d70 1
a70 10
@@@@ -4758,7 +4785,7 @@@@ echo "GTK GL support $gtk_gl"
echo "GNUTLS support $gnutls"
echo "GNUTLS hash $gnutls_hash"
echo "libgcrypt $gcrypt"
-echo "nettle $nettle ${nettle+($nettle_version)}"
+echo "nettle $nettle ($nettle_version)"
echo "libtasn1 $tasn1"
echo "VTE support $vte"
echo "curses support $curses"
@@@@ -5049,6 +5076,9 @@@@ fi
@
1.12.2.1
log
@Pullup ticket #5016 - requested by sevan
emulators/qemu: security fix
Revisions pulled up:
- emulators/qemu/Makefile 1.149
- emulators/qemu/PLIST 1.46
- emulators/qemu/distinfo 1.115
- emulators/qemu/patches/patch-configure 1.13
- emulators/qemu/patches/patch-default-configs_pci.mak 1.2
- emulators/qemu/patches/patch-hw_misc_ivshmem.c 1.1
- emulators/qemu/patches/patch-hw_ppc_mac__newworld.c 1.3
- emulators/qemu/patches/patch-hw_ppc_mac__oldworld.c 1.3
- emulators/qemu/patches/patch-memory.c 1.10
- emulators/qemu/patches/patch-slirp_tcp__subr.c 1.7
---
Module Name: pkgsrc
Committed By: ryoon
Date: Sun May 15 01:25:15 UTC 2016
Modified Files:
pkgsrc/emulators/qemu: Makefile PLIST distinfo
pkgsrc/emulators/qemu/patches: patch-configure
patch-default-configs_pci.mak patch-hw_ppc_mac__newworld.c
patch-hw_ppc_mac__oldworld.c patch-memory.c patch-slirp_tcp__subr.c
Added Files:
pkgsrc/emulators/qemu/patches: patch-hw_misc_ivshmem.c
Log Message:
Update to 2.6.0
Changelog:
System emulation
Incompatible changes
The aio=native option to "-drive" now requires the cache=none option, instead of silently disabling itself for other cache modes. The newly invalid combination had been warning since QEMU 2.3.
Specifying block device parameter aio=native is now an error on POSIX systems if qemu is compiled without libaio support. The newly invalid combination had been warning since QEMU 2.3.
The experimental x-drive option for the sdhci-pci device has been removed. Instead of passing a drive directly to the SD controller device you now must create an SD card object (which will
automatically be plugged into the SD controller), so "-device sdhci-pci,x-drive=mydrive -drive id=mydrive,[...]" becomes "-device sdhci-pci -device sd-card,drive=mydrive -drive id=mydrive,[...]".
The s390-virtio machine has been removed.
Machine types pc-q35-1.4, pc-q35-1.5, pc-q35-1.6, pc-q35-1.7, pc-q35-2.0, pc-q35-2.1, pc-q35-2.2 and pc-q35-2.3 have been removed.
The "virt" machine type's flash device has changed when TrustZone is active ("-machine virt,secure=on"). The first flash device is only available in secure memory, while the second is available
in non-secure memory too.
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.
The original qcow2 image encryption is fatally flawed, and support for it will be disabled entirely from the system emulators. It'll remain 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 if raw files are acceptable, while a future release will integrate luks into qcow2 natively.
A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
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
Support for a separate EL3 address space
System mode supports BE8 and BE32. Note that qemu-system-arm can emulate both big-endian and little-endian guests (unlike user-mode emulation which has separate qemu-arm and qemu-armeb binaries).
Support for the SETEND instruction, used most notably on Raspbian through the arm-mem library (previously known as libcofi).
Faster boot thanks to DMA support in fw_cfg
The "virt" machine type supports a virtual power button and the "system_powerdown" monitor command
The "virt" machine type supports configuring network cards with -nic in addition to -netdev
The RAM limit for the "virt" machine type is now 255GB
The "xlnz-zynqmp" machine type now includes SPI controllers
The "xlnx-ep108" machine type now supports SPI flash
New partial Raspberry Pi 2 emulation with "raspi2" machine type. For now, it can boot older releases of Windows and Raspbian, but lacks a number of devices including USB.
New palmetto-bmc machine type using the new, partial ASPEED AST2400 SoC implementation
KVM
Support for guest debugging (software and hardware breakpoints, single step) on AArch64
MIPS
Support for FPU and MSA in KVM guests
Support for R6 Virtual Processors
Initial support for Cluster Power Controller and Global Configuration Registers allowing the guest to control the start of Virtual Processors
Support for Inter-Thread Communication Unit
Support for MAAR registers in P5600 CPU
PowerPC
Improved support for migration of g3beige and mac99 machines
Fix serial ports for g3beige and mac99 machines (OpenBIOS)
The gdb stub supports the VSX instruction set extensions
pSeries
pSeries machine types starting at pseries-2.6 use XHCI as the USB host controller instead of OHCI
Support for more hypercalls (H_SET_SPRG0, H_SET_DABR, H_SET_XDABR and H_PAGE_INIT)
Support for EEH on assigned PCI devices can use the normal spapr-pci-host-bridge instead of the special spapr-pci-vfio-host-bridge.
s390
Fixes and improvements in s390x PCI support
Support for hotplug of s390x cpus via cpu-add
Support for booting from virtio-scsi devices in the s390-ccw bios
SH
SPARC
sun4m: Fix for ldstub instruction resolves several 32-bit Solaris bugs (MUTEX_HELD hang, libC error, Java WebStart segfault)
sun4u: FreeBSD 10.3+ can now run under qemu-system-sparc64 in -nographic mode
TileGX
Tricore
Support for context management, illegal opcode and opd traps
Support for FPU instructions
x86
TCG
Support for the XSAVE/XSAVEOPT, MPX, FSGSBASE and PKE features
KVM
Support for "split irqchip". In this mode, QEMU emulates the IOAPIC, PIC (i8259) and PIT (i8254) devices while leaving the local APIC emulation to the kernel. This mode reduces the attack surface
of KVM.
Support for the new PKU feature found in some Skylake processors
Support for migrating the TSC rate
Xen
Q35
Support resume (S3)
Support for legacy Windows guests (XP/2003)
Device emulation and assignment
New IPMI emulation subsystem. QEMU can now emulate an internal BMC or attach to an external BMC simulator such as OpenIPMI's lanserv. IPMI however is not yet exposed in SMBIOS and ACPI tables (do
we want to docume?)
FIXME: what's the state of nvdimm?
ACPI
The floppy disk controller's characteristics are now exposed in the ACPI tables, which makes it possible to use floppies on Windows together with UEFI firmware.
Block devices
The floppy disk consk or an empty disk to a 2.88 MB disk
Improved compatibility of the SD device model with various operating systems and firmwares
The NVMe device supports the "bootindex" property.
The SDHCI device supports reset.
ivshmem
No longer available on hosts lacking eventfd(2), because inter-vm interrupts don't work there
New devices ivshmem-plain and ivshmem-doorbell, fully backwards compatible for guests, notable differences to ivshmem:
PCI revision is 1 instead of 0
ivshmem role=master becomes master=on, role=peer becomes master=off
ivshmem x-memdev=ID becomes ivshmem-plain memdev=ID
ivshmem shm=NAME,size=SZ becomes ivshmem-plain memdev=ID, with -object memory-backend-file,id=ID,mem-path=/dev/mem/NAME,size=SZ,share
ivshmem chardev=ID becomes ivshmem-doorbell,chardev=ID
Property ioeventfd defaults to on instead of off
ivshmem-plain never has MSI-X capability, and ivshmem-doorbell always has MSI-X capability
Device ivshmem is deprecated, and its experimental property x-memdev is gone
Interrupting a peer that reuses an unplugged peer's ID works again (broken in v1.2.0)
Unplug no longer destroys the character device, for consistency with other devices
The funny "no shared memory, yet" state is no longer guest-visible, and can no longer fail or mess up migration
Guests may require PCI revision 1 to make sure they're not exposed to the funny state
docs/specs/ivshmem-spec.txt rewritten for completeness and accuracy.
SCSI
Support for the LSI SAS1068 HBA (also known as "MPT Fusion"). Note that some operating systems will not recognize disks attached to this adapter, unless the disks are assigned a world-wide name
(WWN).
PCI/PCIe
PCIe Multi-root support (using the new pxb-pcie root-compex)
USB
MTP: initial support for events
VFIO
Support for AMD XGBE platform passthrough
New sysfsdev property provides a more general way to specify the device to attach to.
Provided PCI option ROMs are fixed to include the same vendor and device id as the device exposed to the guest. This facilitates changing the ids of the devices.
virtio
Performance improvements via optimized vring accesses
The balloon driver statistics now include the amount of available memory (corresponding to "Available" in /proc/meminfo for Linux guests).
Character devices
The socket character device backend can now enable TLS over TCP connections, acting either as a TLS server:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0,server \
-device isa-serial,chardev=s0 \
...other args...
or a TLS client:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0 \
-device isa-serial,chardev=s0 \
...other args...
If operating in server mode, the same set of TLS credentials can be used for both character devices and the VNC server
All character devices can have their output logged to a plain file
$QEMU -chardev stdio,id=mon0,logfile=monitor.log \
-mon chardev=mon0 \
...other args...
will result in logging of all output on the HMP monitor. The logappend parameter controls whether the file is truncated at startup, defaulting to append.
GUI
SDL2 and SPICE now support OpenGL and virgl. For SPICE, Unix sockets are the only usable transport when OpenGL is enabled.
The "-vnc" and "-display vnc" options support ipv4=off and ipv6=off. Previously, only "ipv4" and "ipv6" were available.
Support getting input events directly from linux evdev devices, using "-object input-linux,id=$name,evdev=/dev/input/event$nr"
Support for ncurses on Windows.
Monitor
Support for a new "detach" option to "dump-guest-memory". The option dumps memory in the background. Progress can be queried using the new commands "info dump" (human monitor) and "query-dump"
(QMP), as well as through the QMP event DUMP_COMPLETED.
Support for a new command "input-send-event" replacing the previous experimental command "x-input-send-event".
The human monitor command "drive_add -n" allows creating block devices that do not have a BlockBackend (similar to QMP blockdev-add).
Migration
Postcopy is not experimental anymore; the x-postcopy-ram capability was renamed to postcopy-ram.
Network
SLIRP now supports IPv6 for ICMP, UDP, TCP and TFTP.
mirror filter which can mirror traffic from netdev to socket chardev, vice versa.
redirector filter which can redirect traffic from netdev to socket chardev, vice versa.
Secret passing system
There is a new standard mechanism for securely passing secret credentials to QEMU, which will be used in combination with other subsystems. For example, network block device passwords, block device
decryption passphrases, or TLS private key passwords can all use the same mechanism.
Passing credentials inline (insecure, only for developer testing)
$QEMU -object secret,id=sec0,data=letmein
Passing credentials via a plain file
$QEMU -object secret,id=sec0,file=mypassword.txt
Passing credentials via a base64 encoded file
$QEMU -object secret,id=sec0,file=mypassword.txt,format=base64
Passing credentials inline, encrypted with a master key (recommended for management apps)
$QEMU -object secret,id=master0,file=mykey.b64,format=base64 \
-object secret,id=sec0,data=[base64 ciphertext],\
keyid=master0,iv=[base64 IV],format=base64
TLS credential handling
It is now possible to use encrypted TLS private keys with credentials for TLS servers/clients in QEMU. The password for unlocking the private key is provided by a secret object whose id is specified
via the passwordid' property
$QEMU -object secret,id=tlskey0,file=mypassword.txt \
-object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server,passwordid=tlskey0 \
...other args...
Block devices
Block device throttling now support specifying a burst length as well. While previously the burst could only be specified as a total number of IOPS (e.g. 10000 IOPS), more complex specifications
such as "10000 IOPS for 10 seconds" are now possible. Note that, because of the implementation of the algorithm, a guest that is allowed "10000 IOPS for 10 seconds" will also be allowed to perform
for example 5000 IOPS for 20 seconds.
The curl block device driver now supports HTTP authentication and HTTP proxy authentication via the new properties 'username', 'password-secret', 'proxy-username' and 'proxy-password-secret'.
$QEMU -object secret,id=sec0,file=password.txt \
-object secret,id=sec1,file=proxy-password.txt \
-drive driver=http,host=localhost,port=443,username=fred,password-secret=sec0,proxy-username=bob,proxy-password-secret=sec1 \
...other args...
The RBD block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.b64,format=base64 \
-drive driver=rbd,filename=rbd:pool/image:id=myname:auth_supported=cephx,password-secret=sec0 \
...other args...
The iSCSI block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.txt \
-iscsi user=fred,password-secret=sec0 \
-drive file=iscsi://192.168.122.1:3260/iqn.2013-12.com.example%3Aiscsi-chap-netpool/1
NB this syntax requires that all iSCSI backed drives use the same password
The qemu-io tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a
block device backend. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect qemu-io to an NBD server
using TLS
qemu-io -c "read 0 512" \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
The qemu-nbd tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a
block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect
qemu-nbd to an HTTP server with authentication and export it over NBD using TLS
qemu-nbd --readonly \
--object secret,id=sec0,file=passwd.txt \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
The qemu-img tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a
block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to a remote HTTP
server with authentication
qemu-img info --object secret,id=sec0,file=passwd.txt \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
Support for deleting snapshots on Sheepdog devices.
The NBD client and server now support use of TLS. When enabled, the server will mandate that the client also enable TLS and drop any client which attempts to continue in plain text. To run a
qemu-nbd server with TLS:
qemu-nbd --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--tls-creds tls0 \
/path/to/disk/image
To connect to a server that requires TLS with qemu-img:
qemu-img info --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
To start a VM pointing to the NBD server
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-drive driver=nbd,host=localhost,port=10809,tls-creds=tls0 \
...other args...
The NBD server gained support for specifying an export name. When the client negotiates use of the new style NBD protocol the default export name is "". The --exportname argument allows this to
be customized:
qemu-nbd --exportname myvol /path/to/myvol.qcow2
QEMU gained support for volumes formatted with the LUKSv1 data format. To format a new LUKS volume
qemu-img create -f luks \
--object secret,id=sec0,file=passphrase.txt \
-o key-secret=sec0 \
demo.luks 10G
To boot a guest from a LUKS volume:
$QEMU -object secret,id=sec0,file=passphrase.txt \
-drive driver=luks,key-secret=sec0,file=demo.luks \
...other args...
The LUKS implementation is intended to be compatible with that used by cryptsetup/dm-crypt, so it should be possible to use disk images interchangeably between them. The only caveat is that some less
common cipher/hash algorithms are not yet supported by QEMU. It is also not yet possible to manage key-slots with qemu-img.
TCG
Record/replay support extended to cover character devices.
Tracing
The "stderr" tracing backend was replaced by the "log" tracing backend, which is now the default. This backend prints tracing messages to the destination specified with the "-D" option.
In addition to the existing "-trace file=...", tracepoints can be enabled using "-trace [enable=]...". The new option also supports globbing, as in "-trace bdrv_aio_*".
In addition to the existing "-trace file=...", tracepoints can be enabling using "-d trace:...". This option also supports globbing, as in "-d trace:bdrv_aio_*".
When using "-daemonize", the "-D" option also provides the file to which QEMU's stderr output will be redirected.
TCG supports a new "-dfilter" option to limit exec, out_asm, op and op_opt logging to a range of guest physical addresses. ARM also applies the filter to in_asm logging; this will be extended to
other targets in future releases (FIXME: probably should do it now instead...)
A "%d" substring in the log file name is replaced with QEMU's pid.
User-mode emulation
The default CPU for ppc64 and ppc64le is now POWER8
@
text
@d1 1
a1 1
$NetBSD$
d7 1
a7 1
--- configure.orig 2016-05-11 15:56:07.000000000 +0000
d9 1
a9 1
@@@@ -624,7 +624,6 @@@@ SunOS)
d59 1
a59 1
@@@@ -4583,7 +4608,9 @@@@ if test "$want_tools" = "yes" ; then
d70 10
a79 1
@@@@ -5074,6 +5101,9 @@@@ fi
@
1.11
log
@slightly better shm_open check fix
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.10 2016/03/06 09:55:58 dbj Exp $
d5 1
d70 9
@
1.10
log
@tweak check for shm_open. Fixes build on darwin
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.9 2015/12/22 23:52:00 ryoon Exp $
d16 1
a16 1
@@@@ -3672,6 +3671,28 @@@@ if compile_prog "" "" ; then
d36 1
a36 2
+fi
+if compile_prog "" "-lrt" ; then
d44 1
a44 1
@@@@ -3935,8 +3956,13 @@@@ fi
d58 1
a58 1
@@@@ -4568,7 +4594,9 @@@@ if test "$want_tools" = "yes" ; then
d69 1
a69 1
@@@@ -5049,6 +5077,9 @@@@ fi
@
1.9
log
@Build ivshmem* conditionally, fix broken if conditional
@
text
@d1 2
a2 1
$NetBSD: patch-configure,v 1.8 2015/12/21 12:10:22 ryoon Exp $
d4 1
d16 1
a16 1
@@@@ -3672,6 +3671,23 @@@@ if compile_prog "" "" ; then
d26 1
d34 3
d38 1
d45 1
a45 1
@@@@ -3935,8 +3951,13 @@@@ fi
d59 1
a59 1
@@@@ -4568,7 +4589,9 @@@@ if test "$want_tools" = "yes" ; then
d70 1
a70 1
@@@@ -5049,6 +5072,9 @@@@ fi
@
1.8
log
@Fix build under NetBSD 6 or other platform that has no shm_open()
Fix PR pkg/50572.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.7 2015/12/18 22:39:33 ryoon Exp $
d57 1
a57 1
+ if ["$shm_open" = "yes" ] ; then
d67 1
a67 1
+if test "$shm_open" = "yes" ; then
@
1.7
log
@Update to 2.5.0
Changelog:
== System emulation ==
* guard pages are now inserted after guest RAM, to guard against guest-triggered buffer overflow attacks
=== Incompatible changes ===
* The mips32r5-generic CPU was renamed to P5600
* Host floppy device pass-through (block driver "host_floppy") has been removed; it is still possible to use them just like any other device file, however, a medium change will no longer be passed through to the guest
=== 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.
* Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.
* Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.
* Block device parameter aio=native has no effect if qemu is compiled without libaio support. It will be made an error.
* A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
* 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.
* The s390-virtio machine has been deprecated for 2.5; it will be removed in 2.6. s390x users should switch to the (default) s390-ccw-virtio machine.
* Changes to device "sdhci-pci" will make migration between old and new versions impossible.
* We intend to drop support for running QEMU on MacOSX 10.5 hosts in the QEMU 2.6 release, unless somebody who uses it wishes to step forward and help us with regular testing.
=== Alpha ===
=== ARM ===
* The "virt" machine type supports passing SMBIOS to the firmware.
* Semihosting support on AArch64
* New i.MX31 SoC.
* The ZynqMP and Allwinner A10 platforms support AHCI.
* Support for VGICv3 in KVM
* Support for GICv3 in the ACPI tables.
* The "virt" machine now has a second PCIe MMIO region of 512GB in size in high memory. Note that older 32-bit ARM Linux kernels built without CONFIG_LPAE have a bug where the presence of this region in high memory causes them to refuse to use the PCIe controller at all. In this case you can either reconfigure your kernel with CONFIG_LPAE=y, or pass QEMU the "-machine highmem=off" option to disable the use of high memory for PCIe. The kernel bug is expected to be fixed in Linux kernel release 4.4.
=== MIPS ===
* The mips32r5-generic CPU was renamed to P5600
* Improvements to MIPS R6 emulation
=== PowerPC ===
==== pSeries ====
* Support for memory hotplug
* The shipped version of SLOF includes GPT support.
* Using VFIO doesn't need spapr-pci-vfio-host-bridge anymore.
* virtio-vga now supported on sPAPR guests.
* [[Features/HRandomHypercall | H_RANDOM hypercall]] device for providing good random data to the guests.
==== Mac99 ====
* Improve ability to boot MacOS 9 (based upon GSoC project "Implement support for Mac OS 9 in QEMU " by Cormac O'Brien)
=== s390 ===
* Storage keys are migrated.
* New "info skeys" command in HMP to dump the storage key for a given address.
* Support for virtio 1 in the virtio-ccw devices.
** A maximum virtio-ccw revision can be specified via the "max_revision" property: max_revision=0 may be used to enforce usage of legacy virtio mode.
* Support for boot from El Torito iso images on virtio-blk has been added.
=== SH ===
=== SPARC ===
* sun4u: Fix EBus device enumeration under FreeBSD SPARC64 (OpenBIOS)
=== TileGX ===
* New target.
=== x86 ===
* The emulated IOMMU (VT-d) supports devices behind a bridge
* QEMU will warn when using a "-cpu" model that includes unsupported features. These features are disabled automatically, just like in previous versions of QEMU
* /machine/icc-bridge was removed from the QOM tree. Software relying on icc-bridge to find CPU objects should use the "qom_path" field of "query-cpus" QMP command
==== CPU models and features ====
* Haswell and Broadwell CPU models now include ABM
* Cache information passthrough (which was enabled by default on "-cpu host") is now disabled by default
* ABM, POPCNT, and SSE4a are not enabled in the default CPU models (qemu64, qemu32) anymore, as many hosts don't support it
* RDTSCP was removed from AMD CPU models, as current KVM versions can't expose RDTSCP to guests in AMD hosts
* New Intel memory instructions (clflushopt/clwb/pcommit) are now supported
* TCG now supports Debug Extensions (CR4.DE)
==== KVM ====
* Support for Hyper-V-compatible reporting of crashes.
==== Xen ====
* Support for passthrough of Intel integrated GPUs.
=== Device emulation and assignment ===
* fw_cfg supports a DMA interface on ARM and x86. This interface makes -kernel/-initrd much faster if supported by the firmware. SeaBIOS supports the DMA interface starting with release 1.9.0 (commit 06316c9d). The UEFI guest fw for ARM VMs (known as ArmVirtQemu or AAVMF) supports the DMA interface starting with git commit 953bcbcc / SVN r18545.
==== ACPI ====
==== Audio ====
==== Block devices ====
==== Character devices ====
==== IDE ====
* AHCI ATAPI PIO transfers greater than one sector are fixed. This helps on OVMF, which utilizes such transfers.
* Zero byte count limits will no longer hang ATAPI drives.
* ATAPI PIO reads, when the byte count limit is set to the ATAPI block size, are now asynchronous. This should help to prevent hangs due to missing CDROM media mounted via NFS.
==== Mouse/keyboard ====
==== Network ====
==== SCSI ====
* scsi-generic devices now can be used together with a "readonly=on" backend.
==== Shared memory device ====
* A sample implementation of the ivshmem client and ivhsmem server is included with QEMU.
* ivshmem supports a new "x-memdev" property that uses a memory object for the backend. This makes it possible to use ivshmem with a hugetlbfs backend. This property is experimental and may be removed in future release in favour of an alternative ivshmem device.
* Use kvm irqfd for msi notifications
* Protocol change, native long -> LE int64_t
==== PCI/PCIe ====
* hotplug support added for multifunction devices. To use, add all functions except function 0 first. Adding function 0 exposes the device to the guest. Request removal on function 0. On guest acknowledge, all functions are ejected together.
==== TPM ====
==== VFIO ====
==== virtio ====
* virtio-gpu now supports 3D mode
* vhost-user now supports live migration. client changes are required to enable this. When used with an old client without migration support, vhost-user will now block migration (instead of failing silently)
* vhost-user now supports multi-queue. Use queues=# to enable this. client changes are required to enable this mode. When used with an old client without multi-queue support, device will automatically fall back on using a single pair of queues.
* vhost-user protocol now includes protocol feature negotiation, including multiple new messages. When used with old clients, all new messages are automatically disabled.
* vhost-user no longer sents the RESET_OWNER message on device stop. The only QEMU version that sent it was 2.4, the message is now officially deprecated.
* migration now works when virtio 1 is enabled for virtio-pci
* For virtio-pci, virtio 1 performance on kvm on Intel CPUs has been improved (on kernel 4.4 and up).
* a new flag modern-pio-notify can be used to enable PIO for notifications in virtio 1 mode, to improve performance for host kernels older than 4.4, and processors without EPT support.
* virtio devices can now be placed on the pci express bus
* vhost is no longer disabled when guest does not use MSI-X. The vhostforce flag is no longer required.
* in virtio 1 mode, scsi passthrough is now disabled for virtio blk
* Please note that for virtio-pci, the modern (virtio 1) interface is still disabled by default. To enable, set the flag disable-modern=off.
==== VGA ====
=== Character devices ===
=== GUI ===
* New syntax for enabling TLS in the VNC server:
** Equivalent to -vnc hostname:0,tls: -object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0
** Equivalent to -vnc hostname:0,tls,x509=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0
** Equivalent to -vnc hostname:0,tls,x509verify=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0
* The Cocoa GUI does not have show an 'open image file' dialog box anymore even if QEMU is started without arguments
* Thu curses GUI supports 256 colors and line graphics.
=== Monitor ===
* New "info iothreads" command.
* New "query-qmp-schema" command allows the caller to [[Features/QMP/Introspection | introspect the QMP schema]] used by QEMU.
=== Migration ===
* [[Features/PostCopyLiveMigration | Postcopy migration]] for migration of large/busy guests
* A more flexible [[Features/AutoconvergeLiveMigration | auto-converge mechanism]] (for busy guests)
=== Network ===
* Support for multiqueue in vhost-user.
* Support for network filters. Currently, the only filter objects are "filter-buffer", which batches packets every N microseconds, and "filter-dump", which can be used to log the network traffic in a file. Filters are attached to a netdev device using e.g. "-object filter-buffer,id=filter,netdev=net0,queue=rx,interval=1000" (which creates a 1ms filter-buffer).
=== Block devices in system emulation ===
=== Command-line options ===
=== TCG ===
* Improved system emulation performance for targets with software TLBs (e.g. SPARC).
* Initial support for [[Features/record-replay | record/replay]].
== Block devices and tools ==
* The HMP "change" command (QMP's “"lockdev-change-medium") now allows you to change the read-only mode of the device (e.g. when inserting a read-only floppy disk image into a previously R/W drive)
* Fine-grained control over a block device's tray with the new QMP commands "blockdev-open-tray", "blockdev-close-tray", "x-blockdev-insert-medium", and "x-blockdev-remove-medium" (the latter two are experimental for now)
* New "reopen" command in qemu-io
* block-dirty-bitmap-add and block-dirty-bitmap-clear transaction actions have been added to now fully support (transient) incremental bitmap usage and management.
* QMP transactions now support a "completion-mode" parameter which controls the completion behavior of jobs launched by transactions, which will allow them to fail together. See the [https://github.com/qemu/qemu/blob/master/docs/bitmaps.md bitmaps.md] documentation for how this affects incremental backups.
* Block I/O accounting can now report average queue depth, min/avg/max latency, and failed/invalid request counts
* qcow2 learnt a new option ''cache-clean-interval'', which allows to free unused cache entries after some time.
* An experimental QMP command ''x-blockdev-del'' was added as a completement for the (also still experimental) ''blockdev-add'' command.
* A new QMP command ''blockdev-snapshot'' that allows creating a snapshot using as overlay an image previously opened with ''blockdev-add''. This allows opening the overlay image with arbitrary run-time options, solving one of the limitations of ''blockdev-snapshot-sync''.
* It is now possible to open an image without its backing file by specifying the empty string as a backing file reference when opening the image. This is useful for creating snapshots, since images opened with ''blockdev-add'' are not supposed to have a backing file before the ''blockdev-snapshot'' operation.
* Host CD-ROM support now works on Mac OS X hosts
* Host floppy support has been removed (it was deprecated in QEMU 2.3)
* The temporary "x-data-plane=on/off" option for virtio-blk device is removed now, all users are requested to use the canonical "-object iothread,id= -device virtio-blk,iothread=,..." syntax.
== Audio ==
== Guest agent ==
* Add an optional qemu-ga.conf system configuration
* Support for dumping the configuration current file with --dump-conf
* Win32 support for guest-set-user-password
* New command guest-exec
== User-mode emulation ==
* The configure option --disable-guest-base has been removed.
== Build dependencies ==
* libcacard has been moved to a standalone project, hosted at git://anongit.freedesktop.org/spice/libcacard. The libcacard library from QEMU 2.4 can also be used to build QEMU 2.5.
* virtio-gpu 3D support requires virglrenderer.
== Known issues ==
* SDL audio only works with SDL 1.x.
* 64-bit QEMU might crash on Windows (problems with stack unwinding, depends on build environment, [http://repo.or.cz/w/qemu/ar7.git/commit/8fa9c07c9a33174905e67589bea6be3e278712cb possible fix])
* QEMU's configure script fails with pdksh from OpenBSD (see [https://bugs.launchpad.net/qemu/+bug/1525682 bug #1525682]. Using another shell with configure should work.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.6 2015/01/07 21:39:24 wiedi Exp $
d14 25
a38 1
@@@@ -3935,8 +3934,12 @@@@ fi
d45 1
d48 1
a48 1
+ shm_open(NULL, O_RDWR, 0644);
d52 21
@
1.6
log
@fix build on SunOS
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.4 2014/08/17 08:57:01 adam Exp $
d4 1
a4 1
--- configure.orig 2014-12-09 14:45:40.000000000 +0000
d6 1
a6 1
@@@@ -622,7 +622,6 @@@@ SunOS)
d14 13
@
1.6.6.1
log
@Pullup ticket #4876 - requested by ryoon
emulators/qemu: security fix
Revisions pulled up:
- emulators/qemu/Makefile 1.147-1.148
- emulators/qemu/PLIST 1.44-1.45
- emulators/qemu/distinfo 1.109-1.110
- emulators/qemu/options.mk 1.2
- emulators/qemu/patches/patch-Makefile.objs 1.1
- emulators/qemu/patches/patch-configure 1.7-1.8
- emulators/qemu/patches/patch-default-configs_pci.mak 1.1
- emulators/qemu/patches/patch-tests_Makefile 1.3
---
Module Name: pkgsrc
Committed By: ryoon
Date: Fri Dec 18 22:39:33 UTC 2015
Modified Files:
pkgsrc/emulators/qemu: Makefile PLIST distinfo
pkgsrc/emulators/qemu/patches: patch-configure patch-tests_Makefile
Log Message:
Update to 2.5.0
Changelog:
== System emulation ==
* guard pages are now inserted after guest RAM, to guard against guest-triggered buffer overflow attacks
=== Incompatible changes ===
* The mips32r5-generic CPU was renamed to P5600
* Host floppy device pass-through (block driver "host_floppy") has been removed; it is still possible to use them just like any other device file, however, a medium change will no longer be passed
through to the guest
=== 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.
* Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.
* Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.
* Block device parameter aio=native has no effect if qemu is compiled without libaio support. It will be made an error.
* A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
* 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.
* The s390-virtio machine has been deprecated for 2.5; it will be removed in 2.6. s390x users should switch to the (default) s390-ccw-virtio machine.
* Changes to device "sdhci-pci" will make migration between old and new versions impossible.
* We intend to drop support for running QEMU on MacOSX 10.5 hosts in the QEMU 2.6 release, unless somebody who uses it wishes to step forward and help us with regular testing.
=== Alpha ===
=== ARM ===
* The "virt" machine type supports passing SMBIOS to the firmware.
* Semihosting support on AArch64
* New i.MX31 SoC.
* The ZynqMP and Allwinner A10 platforms support AHCI.
* Support for VGICv3 in KVM
* Support for GICv3 in the ACPI tables.
* The "virt" machine now has a second PCIe MMIO region of 512GB in size in high memory. Note that older 32-bit ARM Linux kernels built without CONFIG_LPAE have a bug where the presence of this region
in high memory causes them to refuse to use the PCIe controller at all. In this case you can either reconfigure your kernel with CONFIG_LPAE=y, or pass QEMU the "-machine highmem=off" option to
disable the use of high memory for PCIe. The kernel bug is expected to be fixed in Linux kernel release 4.4.
=== MIPS ===
* The mips32r5-generic CPU was renamed to P5600
* Improvements to MIPS R6 emulation
=== PowerPC ===
==== pSeries ====
* Support for memory hotplug
* The shipped version of SLOF includes GPT support.
* Using VFIO doesn't need spapr-pci-vfio-host-bridge anymore.
* virtio-vga now supported on sPAPR guests.
* [[Features/HRandomHypercall | H_RANDOM hypercall]] device for providing good random data to the guests.
==== Mac99 ====
* Improve ability to boot MacOS 9 (based upon GSoC project "Implement support for Mac OS 9 in QEMU " by Cormac O'Brien)
=== s390 ===
* Storage keys are migrated.
* New "info skeys" command in HMP to dump the storage key for a given address.
* Support for virtio 1 in the virtio-ccw devices.
** A maximum virtio-ccw revision can be specified via the "max_revision" property: max_revision=0 may be used to enforce usage of legacy virtio mode.
* Support for boot from El Torito iso images on virtio-blk has been added.
=== SH ===
=== SPARC ===
* sun4u: Fix EBus device enumeration under FreeBSD SPARC64 (OpenBIOS)
=== TileGX ===
* New target.
=== x86 ===
* The emulated IOMMU (VT-d) supports devices behind a bridge
* QEMU will warn when using a "-cpu" model that includes unsupported features. These features are disabled automatically, just like in previous versions of QEMU
* /machine/icc-bridge was removed from the QOM tree. Software relying on icc-bridge to find CPU objects should use the "qom_path" field of "query-cpus" QMP command
==== CPU models and features ====
* Haswell and Broadwell CPU models now include ABM
* Cache information passthrough (which was enabled by default on "-cpu host") is now disabled by default
* ABM, POPCNT, and SSE4a are not enabled in the default CPU models (qemu64, qemu32) anymore, as many hosts don't support it
* RDTSCP was removed from AMD CPU models, as current KVM versions can't expose RDTSCP to guests in AMD hosts
* New Intel memory instructions (clflushopt/clwb/pcommit) are now supported
* TCG now supports Debug Extensions (CR4.DE)
==== KVM ====
* Support for Hyper-V-compatible reporting of crashes.
==== Xen ====
* Support for passthrough of Intel integrated GPUs.
=== Device emulation and assignment ===
* fw_cfg supports a DMA interface on ARM and x86. This interface makes -kernel/-initrd much faster if supported by the firmware. SeaBIOS supports the DMA interface starting with release 1.9.0
(commit 06316c9d). The UEFI guest fw for ARM VMs (known as ArmVirtQemu or AAVMF) supports the DMA interface starting with git commit 953bcbcc / SVN r18545.
==== ACPI ====
==== Audio ====
==== Block devices ====
==== Character devices ====
==== IDE ====
* AHCI ATAPI PIO transfers greater than one sector are fixe 0. On guest
acknowledge, all functions are ejected together.
==== TPM ====
==== VFIO ====
==== virtio ====
* virtio-gpu now supports 3D mode
* vhost-user now supports live migration. client changes are required to enable this. When used with an old client without migration support, vhost-user will now block migration (instead of failing
silently)
* vhost-user now supports multi-queue. Use queues=# to enable this. client changes are required to enable this mode. When used with an old client without multi-queue support, device will
automatically fall back on using a single pair of queues.
* vhost-user protocol now includes protocol feature negotiation, including multiple new messages. When used with old clients, all new messages are automatically disabled.
* vhost-user no longer sents the RESET_OWNER message on device stop. The only QEMU version that sent it was 2.4, the message is now officially deprecated.
* migration now works when virtio 1 is enabled for virtio-pci
* For virtio-pci, virtio 1 performance on kvm on Intel CPUs has been improved (on kernel 4.4 and up).
* a new flag modern-pio-notify can be used to enable PIO for notifications in virtio 1 mode, to improve performance for host kernels older than 4.4, and processors without EPT support.
* virtio devices can now be placed on the pci express bus
* vhost is no longer disabled when guest does not use MSI-X. The vhostforce flag is no longer required.
* in virtio 1 mode, scsi passthrough is now disabled for virtio blk
* Please note that for virtio-pci, the modern (virtio 1) interface is still disabled by default. To enable, set the flag disable-modern=off.
==== VGA ====
=== Character devices ===
=== GUI ===
* New syntax for enabling TLS in the VNC server:
** Equivalent to -vnc hostname:0,tls: -object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0
** Equivalent to -vnc hostname:0,tls,x509=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0
** Equivalent to -vnc hostname:0,tls,x509verify=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0
* The Cocoa GUI does not have show an 'open image file' dialog box anymore even if QEMU is started without arguments
* Thu curses GUI supports 256 colors and line graphics.
=== Monitor ===
* New "info iothreads" command.
* New "query-qmp-schema" command allows the caller to [[Features/QMP/Introspection | introspect the QMP schema]] used by QEMU.
=== Migration ===
* [[Features/PostCopyLiveMigration | Postcopy migration]] for migration of large/busy guests
* A more flexible [[Features/AutoconvergeLiveMigration | auto-converge mechanism]] (for busy guests)
=== Network ===
* Support for multiqueue in vhost-user.
* Support for network filters. Currently, the only filter objects are "filter-buffer", which batches packets every N microseconds, and "filter-dump", which can be used to log the network traffic in
a file. Filters are attached to a netdev device using e.g. "-object filter-buffer,id=filter,netdev=net0,queue=rx,interval=1000" (which creates a 1ms filter-buffer).
=== Block devices in system emulation ===
=== Command-line options ===
=== TCG ===
* Improved system emulation performance for targets with software TLBs (e.g. SPARC).
* Initial support for [[Features/record-replay | record/replay]].
== Block devices and tools ==
* The HMP "change" command (QMP's $B!H(B"lockdev-change-medium") now allows you to change the read-only mode of the device (e.g. when inserting a read-only floppy disk image into a previously R/W drive)
* Fine-grained control over a block device's tray with the new QMP commands "blockdev-open-tray", "blockdev-close-tray", "x-blockdev-insert-medium", and "x-blockdev-remove-medium" (the latter two are
experimental for now)
* New "reopen" command in qemu-io
* block-dirty-bitmap-add and block-dirty-bitmap-clear transaction actions have been added to now fully support (transient) incremental bitmap usage and management.
* QMP transactions now support a "completion-mode" parameter which controls the completion behavior of jobs launched by transactions, which will allow them to fail together. See the
[https://github.com/qemu/qemu/blob/master/docs/bitmaps.md bitmaps.md] documentation for how this affects incremental backups.
* Block I/O accounting can now report average queue depth, min/avg/max latency, and failed/invalid request counts
* qcow2 learnt a new option ''cache-clean-interval'', which allows to free unused cache entries after some time.
* An experimental QMP command ''x-blockdev-del'' was added as a completement for the (also still experimental) ''blockdev-add'' command.
* A new QMP command ''blockdev-snapshot'' that allows creating a snapshot using as overlay an image previously opened with ''blockdev-add''. This allows opening the overlay image with arbitrary
run-time options, solving one of the limitations of ''blockdev-snapshot-sync''.
* It is now possible to open an image without its backing file by specifying the empty string as a backing file reference when opening the image. This is useful for creating snapshots, since images
opened with ''blockdev-add'' are not supposed to have a backing file before the ''blockdev-snapshot'' operation.
* Host CD-ROM support now works on Mac OS X hosts
* Host floppy support has been removed (it was deprecated in QEMU 2.3)
* The temporary "x-data-plane=on/off" option for virtio-blk device is removed now, all users are requested to use the canonical "-object iothread,id= -device virtio-blk,iothread=,..." syntax.
== Audio ==
== Guest agent ==
* Add an optional qemu-ga.conf system configuration
* Support for dumping the configuration current file with --dump-conf
* Win32 support for guest-set-user-password
* New command guest-exec
== User-mode emulation ==
* The configure option --disable-guest-base has been removed.
== Build dependencies ==
* libcacard has been moved to a standalone project, hosted at git://anongit.freedesktop.org/spice/libcacard. The libcacard library from QEMU 2.4 can also be used to build QEMU 2.5.
* virtio-gpu 3D support requires virglrenderer.
== Known issues ==
* SDL audio only works with SDL 1.x.
* 64-bit QEMU might crash on Windows (problems with stack unwinding, depends on build environment, [http://repo.or.cz/w/qemu/ar7.git/commit/8fa9c07c9a33174905e67589bea6be3e278712cb possible fix])
* QEMU's configure script fails with pdksh from OpenBSD (see [https://bugs.launchpad.net/qemu/+bug/1525682 bug #1525682]. Using another shell with configure should work.
---
Module Name: pkgsrc
Committed By: ryoon
Date: Mon Dec 21 12:10:22 UTC 2015
Modified Files:
pkgsrc/emulators/qemu: Makefile PLIST distinfo options.mk
pkgsrc/emulators/qemu/patches: patch-configure
Added Files:
pkgsrc/emulators/qemu/patches: patch-Makefile.objs
patch-default-configs_pci.mak
Log Message:
Fix build under NetBSD 6 or other platform that has no shm_open()
Fix PR pkg/50572.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.6 2015/01/07 21:39:24 wiedi Exp $
d4 1
a4 1
--- configure.orig 2015-12-16 22:04:48.000000000 +0000
d6 1
a6 1
@@@@ -650,7 +650,6 @@@@ SunOS)
a13 59
@@@@ -3672,6 +3671,23 @@@@ if compile_prog "" "" ; then
fallocate_zero_range=yes
fi
+# check for shm_open
+shm_open=no
+cat > $TMPC << EOF
+#include
+#include
+#include
+
+int main(void)
+{
+ shm_open(NULL, O_RDWR, 0644);
+ return 0;
+}
+EOF
+if compile_prog "" "-lrt" ; then
+ shm_open=yes
+fi
+
# check for posix_fallocate
posix_fallocate=no
cat > $TMPC << EOF
@@@@ -3935,8 +3951,13 @@@@ fi
cat > $TMPC <
#include
+#include
+#include
+#include
+
int main(void) {
timer_create(CLOCK_REALTIME, NULL, NULL);
+ shm_open(NULL, O_RDWR, 0644);
return clock_gettime(CLOCK_REALTIME, NULL);
}
EOF
@@@@ -4568,7 +4589,9 @@@@ if test "$want_tools" = "yes" ; then
tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
tools="qemu-nbd\$(EXESUF) $tools"
- tools="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
+ if ["$shm_open" = "yes" ] ; then
+ tools="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
+ fi
fi
fi
if test "$softmmu" = yes ; then
@@@@ -5049,6 +5072,9 @@@@ fi
if test "$fallocate_zero_range" = "yes" ; then
echo "CONFIG_FALLOCATE_ZERO_RANGE=y" >> $config_host_mak
fi
+if test "$shm_open" = "yes" ; then
+ echo "CONFIG_SHM_OPEN=y" >> $config_host_mak
+fi
if test "$posix_fallocate" = "yes" ; then
echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
fi
@
1.6.6.2
log
@Part 2 of pullup ticket #4876 - requested by ryoon
emulators/qemu: security fix
Revisions pulled up:
- emulators/qemu/distinfo 1.111
- emulators/qemu/patches/patch-configure 1.9
---
Module Name: pkgsrc
Committed By: ryoon
Date: Tue Dec 22 23:52:00 UTC 2015
Modified Files:
pkgsrc/emulators/qemu: distinfo
pkgsrc/emulators/qemu/patches: patch-configure
Log Message:
Build ivshmem* conditionally, fix broken if conditional
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.6.6.1 2015/12/22 20:21:43 bsiegert Exp $
d57 1
a57 1
+ if test "$shm_open" = "yes" ; then
d67 1
a67 1
+if [ "$shm_open" = "yes" ] ; then
@
1.5
log
@Update qemu to 2.1.2. Changes:
9a72433: slirp: udp: fix NULL pointer dereference because of uninitialized socket (Petr Matousek)
00dd2b2: pc: leave more space for BIOS allocations (Michael S. Tsirkin)
80f4d02: Revert "virtio: don't call device on !vm_running" (Michael S. Tsirkin)
074e347: virtio-net: drop assert on vm stop (Michael S. Tsirkin)
9e8d994: Revert "rng-egd: remove redundant free" (Eduardo Habkost)
a56b9cf: hw/machine: Free old values of string properties (Eduardo Habkost)
0717855: Revert "spapr_pci: map the MSI window in each PHB" (Greg Kurz)
82d80e1: target-i386: Support migratable=no properly (Eduardo Habkost)
5dd076a: exec: Save CPUState::exception_index field (Pavel Dovgaluk)
257e9cf: pty: Fix byte loss bug when connecting to pty (Sebastian Tanase)
1aa87d3: spice: make sure we don't overflow ssd->buf (Gerd Hoffmann)
7fe5418: vbe: rework sanity checks (Gerd Hoffmann)
c5042f0: vbe: make bochs dispi interface return the correct memory size with qxl (Gerd Hoffmann)
cf29a88: virtio-net: purge outstanding packets when starting vhost (Michael S. Tsirkin)
08743db: net: complete all queued packets on VM stop (Michael S. Tsirkin)
d9c06c0: net: invoke callback when purging queue (Michael S. Tsirkin)
f321710: virtio: don't call device on !vm_running (Michael S. Tsirkin)
ec48bfd: net: Forbid dealing with packets when VM is not running (zhanghailiang)
eb36f79: acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags (zhanghailiang)
34d41c1: vhost-scsi: init backend features earlier (Michael S. Tsirkin)
6f8d05a: vhost_net: init acked_features to backend_features (Jason Wang)
5e83dae: vhost_net: start/stop guest notifiers properly (Jason Wang)
ff34ca0: pci: avoid losing config updates to MSI/MSIX cap regs (Knut Omang)
e685d2a: virtio-net: don't run bh on vm stopped (Michael S. Tsirkin)
67cfda8: qxl-render: add more sanity checks (Gerd Hoffmann)
4fd144f: target-arm: Correct Cortex-A57 ISAR5 and AA64ISAR0 ID register values (Peter Maydell)
ea774b8: target-arm: Fix regression that disabled VFP for ARMv5 CPUs (Peter Maydell)
3e8966d: x86: Clear MTRRs on vCPU reset (Alex Williamson)
ba8576f: x86: kvm: Add MTRR support for kvm_get|put_msrs() (Alex Williamson)
07f8c97: x86: Use common variable range MTRR counts (Alex Williamson)
72c9c9a: target-i386: Don't forbid NX bit on PAE PDEs and PTEs (William Grant)
3d8cc86: vl: process -object after other backend options (Paolo Bonzini)
0824ca6: spapr_pci: map the MSI window in each PHB (Greg Kurz)
feb6334: thread-pool: avoid deadlock in nested aio_poll() calls (Stefan Hajnoczi)
75ada6b: thread-pool: avoid per-thread-pool EventNotifier (Stefan Hajnoczi)
be3af75: pc: reserve more memory for ACPI for new machine types (Michael S. Tsirkin)
bfe3e6f: pcihp: fix possible array out of bounds (Gonglei)
cd4acff: hostmem: set MPOL_MF_MOVE (Michael S. Tsirkin)
4b59161: vmxnet3: Pad short frames to minimum size (60 bytes) (Ben Draper)
fab7560: blkdebug: Delete BH in bdrv_aio_cancel (Fam Zheng)
16c92cd: qemu-iotests: add test case 101 for short file I/O (Stefan Hajnoczi)
dea6efe: raw-posix: fix O_DIRECT short reads (Stefan Hajnoczi)
8c4edd7: block/iscsi: fix memory corruption on iscsi resize (Peter Lieven)
504e2a7: arm/virt: Use PSCI v0.2 function IDs in the DT when KVM uses PSCI v0.2 (Christoffer Dall)
2f6d5e1: target-arm: Rename QEMU PSCI v0.1 definitions (Christoffer Dall)
20463dc: target-arm: Fix return address for A64 BRK instructions (Peter Maydell)
2a575c4: virtio-blk: fix reference a pointer which might be freed (zhanghailiang)
1ad9dce: acpi: align RSDP (Michael S. Tsirkin)
ba1bc81: numa: show hex number in error message for consistency and prefix them with 0x (Hu Tao)
948574e: pc-dimm: fix up error message (Michael S. Tsirkin)
044af98: pc-dimm: validate node property (Hu Tao)
7c68c54: hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE (Hu Tao)
bd47406: ide: only constrain read/write requests to drive size, not other types (Michael Tokarev)
e22d5dc: l2tpv3 (configure): it is linux-specific (Michael Tokarev)
dfd4808: vfio: Fix MSI-X vector expansion (Alex Williamson)
5f26e63: qdev-monitor: include QOM properties in -device FOO, help output (Stefan Hajnoczi)
42f7a13: qmp: hide "hotplugged" device property from device-list-properties (Stefan Hajnoczi)
@
text
@d2 1
d4 1
a4 3
L2TPV3 works on Linux; don't turn it on for other platforms.
--- configure.orig 2014-08-17 08:35:26.000000000 +0000
d6 8
a13 8
@@@@ -1722,6 +1722,7 @@@@ fi
# L2TPV3 probe
cat > $TMPC <
#include
int main(void) { return sizeof(struct mmsghdr); }
EOF
@
1.4
log
@Changes 2.1.0:
Incompatible changes:
---------------------
The 82573L NIC was incorrectly treated as an 8254xx model. It no longer works correctly on either Linux (3.14.*) or Windows 7 and has been removed.
On x86, migration from QEMU 1.7 to QEMU 2.0 was broken if the guest had PCI bridges or for some number of CPUs (12, 13, 14, 54, 55, 56, 97, 98, 99, 139, 140) are the only ones). QEMU 2.1 fixes this, so that migration from QEMU 1.7 to QEMU 2.1 should always work. However, the fix breaks the following scenarios instead:
migration from QEMU 2.0 to QEMU 2.1 with PCI bridges and machine types pc-i440fx-1.7/pc-i440fx-2.0
migration from QEMU 2.0 to QEMU 2.1 with the aforementioned number of CPUs and machine type pc-i440fx-1.7
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".
Starting with QEMU xyz.jkl, -readconfig will standardize on the name for the command line option.
ARM
---
Firmware can be passed to the vexpress machine via -bios.
Improvements to Allwinner SoC emulation.
AArch64 TCG system emulation support.
AArch64 SHA and Crypto instruction support.
LM32
----
Support for semihosting.
Microblaze
----------
Support for u-boot initrd images.
MIPS
----
Support for KVM in the Malta board.
more...
@
text
@d1 1
a1 1
$NetBSD$
@
1.3
log
@Update qemu to 1.4.2.
pkgsrc changes:
- update PLIST for new files
- update patches (adjust lines, update comments)
- remove unnecessary files from subst list
XXX1: tested only on NetBSD/i386 6.1 and NetBSD/amd64 6.1
XXX2: needs to investicate hangup in pthread_cond_timedwait(3) on NetBSD
under load of multiple disk xfers (1.3.1 had the similar problem)
Upstream changes:
Changes mentioned in 1.4.2 announcment:
http://lists.nongnu.org/archive/html/qemu-stable/2013-05/msg00095.html
89400a8: update VERSION for 1.4.2 (Michael Roth)
e85b521: ppc: do not register IABR SPR twice for 603e (Herve Poussineau)
f890185: hw/9pfs: use O_NOFOLLOW for mapped readlink operation (Aneesh Kumar
K.V)
745f6c0: hw/9pfs: Fix segfault with 9p2000.u (Aneesh Kumar K.V)
0182df5: rbd: add an asynchronous flush (Josh Durgin)
7f28f0f: qemu-iotests: add tests for rebasing zero clusters (Paolo Bonzini)
45bbe1f: virtio-balloon: fix integer overflow in BALLOON_CHANGE QMP event (Luiz
Capitulino)
06efdc4: qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32 (Paolo
Bonzini)
0c70b5a: configure: Don't fall back to gthread coroutine backend (Brad Smith)
b90fd15: usb-redir: Fix crash on migration with no client connected (Hans de
Goede)
7322cb1: docs: Fix generating qemu-doc.html with texinfo 5 (Cole Robinson)
1d7723f: qga: unlink just created guest-file if fchmod() or fdopen() fails on
it (Laszlo Ersek)
67b460a: qga: distinguish binary modes in "guest_file_open_modes" map (Laszlo
Ersek)
84247bb: translate-all.c: Remove cpu_unlink_tb() (Peter Maydell)
2ebcc59: Handle CPU interrupts by inline checking of a flag (Peter Maydell)
69001b3: cpu-exec: wrap tcg_qemu_tb_exec() in a fn to restore the PC (Peter
Maydell)
3accab7: tcg: Document tcg_qemu_tb_exec() and provide constants for low bit
uses (Peter Maydell)
6025953: qga: set umask 0077 when daemonizing (CVE-2013-2007) (Laszlo Ersek)
93399d0: tcg/optimize: fix setcond2 optimization (Aurelien Jarno)
074dd56: target-mips: Fix accumulator arguments to gen_helper_dmult(u) (Richard
Sandiford)
d10d251: configure: Pick up libseccomp include path (Andreas Faber)
5613bda: virtio-ccw: Check indicators location. (Cornelia Huck)
c5675a9: tap: properly initialize vhostfds (Jason Wang)
e355efd: rng random backend: check for -EAGAIN errors on read (Amit Shah)
4d7f455: qdev: Fix QOM unrealize behavior (Andreas Farber)
0486c27: nbd: unlock mutex in nbd_co_send_request() error path (Stefan Hajnoczi)
Changes mentioned in 1.4.1 announcment:
http://lists.nongnu.org/archive/html/qemu-stable/2013-04/msg00071.html
57105f7: update VERSION for 1.4.1 (Michael Roth)
6e88653: Add -f FMT / --format FMT arg to qemu-nbd (Daniel P. Berrange)
6d0b135: target-mips: Fix accumulator selection for MIPS16 and microMIPS
(Richard Sandiford)
d89f9ba: Allow clock_gettime() monotonic clock to be utilized on more OS's
(Brad Smith)
46f9071: target-i386: Check for host features before filter_features_for_kvm()
(Eduardo Habkost)
f85e082: help: add docs for missing 'queues' option of tap (Jason Wang)
da78a1b: compiler: fix warning with GCC 4.8.0 (Paolo Bonzini)
2b92aa3: block: complete all IOs before resizing a device (Peter Lieven)
e4cce2d: Revert "block: complete all IOs before .bdrv_truncate" (Peter Lieven)
d15b1aa: qxl: better vga init in enter_vga_mode (Gerd Hoffmann)
65fe29e: doc: Fix texinfo @@table markup in qemu-options.hx (Markus Armbruster)
888e036: acpi: initialize s4_val used in s4 shutdown (Bruce Rogers)
d019dd9: target-mips: fix rndrashift_short_acc and code for EXTR_ instructions
(Petar Jovanovic)
dac077f: target-mips: fix DSP overflow macro and affected routines (Petar
Jovanovic)
b09a673: target-mips: fix for sign-issue in MULQ_W helper (Petar Jovanovic)
79a4dd4: target-mips: fix for incorrect multiplication with MULQ_S.PH (Petar
Jovanovic)
57e929c: usb-tablet: Don't claim wakeup capability for USB-2 version (Hans de
Goede)
27c7135: chardev: clear O_NONBLOCK on SCM_RIGHTS file descriptors (Stefan
Hajnoczi)
283b7de: qemu-socket: set passed fd non-blocking in socket_connect() (Stefan
Hajnoczi)
a1cb89f: net: ensure "socket" backend uses non-blocking fds (Stefan Hajnoczi)
68f9df5: oslib-posix: rename socket_set_nonblock() to qemu_set_nonblock()
(Stefan Hajnoczi)
0135796: update seabios to 1.7.2.1 (Gerd Hoffmann)
799a34a: linux-user/syscall.c: Don't warn about unimplemented get_robust_list
(Peter Maydell)
8378910: linux-user: make bogus negative iovec lengths fail EINVAL (Peter
Maydell)
7a238b9: linux-user: fix futex strace of FUTEX_CLOCK_REALTIME (John Rigby)
02493ee: linux-user/syscall.c: handle FUTEX_WAIT_BITSET in do_futex (John Rigby)
7d47b24: qcow2: flush refcount cache correctly in qcow2_write_snapshots()
(Stefan Hajnoczi)
02ea844: qcow2: flush refcount cache correctly in alloc_refcount_block()
(Stefan Hajnoczi)
0fcf00b: page_cache: fix memory leak (Peter Lieven)
5610ef5: Fix page_cache leak in cache_resize (Orit Wasserman)
7a687ae: virtio-blk: fix unplug + virsh reboot (Christian Borntraeger)
b91aee5: ide/macio: Fix macio DMA initialisation. (Mark Cave-Ayland)
e09b99b: target-ppc: Fix CPU_POWERPC_MPC8547E (Andreas Farber)
611c7f2: pseries: Add cleanup hook for PAPR virtual LAN device (David Gibson)
4e4566c: configure: Require at least spice-protocol-0.12.3 (Michal Privoznik)
43e0061: qemu-bridge-helper: force usage of a very high MAC address for the
bridge (Paolo Bonzini)
3c3de7c: virtio-ccw: Queue sanity check for notify hypercall. (Cornelia Huck)
b0da310: tcg: Fix occasional TCG broken problem when ldst optimization enabled
(Yeongkyoon Lee)
d26efd2: qga/main.c: Don't use g_key_file_get/set_int64 (Peter Crosthwaite)
f305d50: qemu-ga: use key-value store to avoid recycling fd handles after
restart (Michael Roth)
d3652a1: qcow2: make is_allocated return true for zero clusters (Paolo Bonzini)
5194350: pseries: Add compatible property to root of device tree (David Gibson)
4d1cdb9: Allow virtio-net features for legacy s390 virtio bus (Christian
Borntraeger)
c3b81e0: rtc-test: Fix test failures with recent glib (Cole Robinson)
99b1f39: scsi-disk: do not complete canceled UNMAP requests (Paolo Bonzini)
f23ab03: scsi: do not call scsi_read_data/scsi_write_data for a canceled
request (Paolo Bonzini)
0c918dd: iscsi: look for pkg-config file too (Paolo Bonzini)
a8b090e: scsi-disk: handle io_canceled uniformly and correctly (Paolo Bonzini)
4a38944: qemu-ga: make guest-sync-delimited available during fsfreeze (Michael
Roth)
b7ff1a7: qmp: netdev_add is like -netdev, not -net, fix documentation (Markus
Armbruster)
d49fed4: vga: fix byteswapping. (Gerd Hoffmann)
cebb8eb: help: add docs for multiqueue tap options (Jason Wang)
3b39a11: net: reduce the unnecessary memory allocation of multiqueue (Jason
Wang)
ec9f828: qemu-char.c: fix waiting for telnet connection message (Igor Mitsyanko)
332e934: tap: forbid creating multiqueue tap when hub is used (Jason Wang)
e6b795f: block: complete all IOs before .bdrv_truncate (Peter Lieven)
51968b8: coroutine: trim down nesting level in perf_nesting test (Paolo Bonzini)
80d8b5d: target-ppc: Fix "G2leGP3" PVR (Andreas Farber)
ChangeLog 1.4
http://wiki.qemu.org/ChangeLog/1.4
System emulation
----------------
Device emulation
Device issignment
- Improved support for MSI-X on some Mellanox devices.
- VFIO supports PCIe extended configuration space.
USB
- Various CPU usage and throughput improvements for USB 2.0.
- usb-tablet can be connected as an USB 2.0 device, also lowering
the CPU usage substantially.
- Improved support for pass-through of USB serial devices.
- A new device usb-bot is the same as usb-storage, but is configured
like other SCSI adapters and supports multiple LUNs.
Network
- virtio-net supports multiqueue operation.
Other
- Added support for IndustryPack emulation. The TEWS TPCI200 device
emulation (device "tpci200") hosts IndustryPack modules, and the
GE IP-Octal 232 emulation (device "ipoctal232") implements eight
RS-232 serial ports.
ARM
- Various minor bugfixes; no new features in this release.
MIPS
- Improved support for DSP instructions.
PowerPC
- pSeries: NVRAM support for improved guest installation experience
- G3/G4: Allow dcbzl (for Mac OS X guests)
- e500: Linux guests don't use use SWTLB anymore, freeing memory for
real applications
- e500: MSI support
- e500: Allow for up to 31 PCI devices with -M ppce500
- e500: Support idle hcall when running KVM on e500mc or above
- e500: Emulate the EPR facility (e500mc and above)
- PReP: Emulate a full PC87312 Super I/O chipset. This adds a parallel
port. Changing the chipset configuration register at runtime is
not yet supported.
S390
- New virtio-ccw machine and transport support
- Add -cpu ? support
- Improved support for S390 emulation.
x86
- Generation of APIC IDs for NUMA configuration is now compatible with
the Intel(R) 64 Architecture Processor Topology Enumeration
- Many fixes to the Q35 chipset emulation, including experimental AHCI
migration support and support for device assignment.
- Resetting the machine with a write to port 0xCF9 now works.
- The xlevel argument for -cpu option currently silently fix-ups the
user-provided value if it's less than 0x80000000. This will be
removed in future QEMU versions; users are expected to provide valid
xlevel value or QEMU will fail to start.
KVM
- New devices isa-debug-exit and pc-testdev can be used to run
kvm-unit-tests.
Xen
- Persistent grants support implemented in xen_disk, giving substantial
performance improvements.
- xen_disk supports BLKIF_OP_FLUSH_DISKCACHE, making the device safer
against power losses.
- xen_console supports multiple secondary PV consoles.
QMP
- New commands chardev-add and chardev-del add support for hotplugging
character devices.
- New ringbuf-read/ringbuf-write to read and write to memory chardevs
- Various improvements in error messages
Block devices
- Discard operations are now supported on block devices and on
filesystems other than XFS. They are also fully asynchronous now.
- Block device mirroring (also known as storage migration) performance
was greatly improved.
- New experimental threaded backend for virtio-block-pci. This new
backend achieves several times the IOPS of the existing virtio-blk
implementation; for now it can only be used for raw image files and
disables features such as live snapshots and storage migration.
Live Migration
- Moved migration from a timer to a thread, improving latency in
other parts of QEMU and throughput of migration itself
- Many machine models are now correctly marked as not migratable.
Spice
- A new spiceport character device can be used to support arbitrary
communication between the SPICE server on the host and the client.
VNC
- Added support for the Websocket protocol.
User-mode emulation
-------------------
- Fix ppc guest signal handling
- Fix MIPS target
Guest agent
-----------
- qemu-ga supports hooks that are executed when the guest receives
the guest-fsfreeze-freeze and guest-fsfreeze-thaw commands
Host support
------------
- Native asynchronous I/O for Win32 (introduced in 1.3) now actually works.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.2 2012/09/11 17:13:45 asau Exp $
d3 3
a5 1
--- configure.orig 2012-09-05 14:03:06.000000000 +0000
d7 2
a8 3
@@@@ -1190,6 +1190,9 @@@@ else
exit 1
fi
d10 5
a14 6
+# hw/usb/hcd_ehci.c will not compile with -O3 optimization.
+CFLAGS=`echo "$CFLAGS" | sed -e 's,-O3,,'`
+
# Consult white-list to determine whether to enable werror
# by default. Only enable by default for git builds
z_version=`cut -f3 -d. $source_path/VERSION`
@
1.2
log
@Update to QEMU 1.2.0
Changes since version 1.1.1:
System emulation
All targets
* ... QMP error changes go here ...
* File descriptors can be passed to qemu using the new
add-fd/remove-fd QMP commands. It is intended that they can
be used in any place where QEMU would expect a file name.
This is ensured for disk images, support in other parts of
QEMU may still be inconsistent.
ARM
* LPAE (large physical address extensions) are now supported
for the Cortex-A15 CPU; you can now run a vexpress-a15 model
with more than 4GB of RAM
* The new monitor command "dump-guest-memory" creates an ELF
dump of the guest memory.
* New board model: i.MX31
PowerPC
* The pSeries target correctly creates segment size device
tree nodes (fixes odd bugs with HV vs PR KVM)
* The pSeries target implements an IOMMU.
* ... pSeries VGA, USB, etc.? ...
* The E500 target generates its device tree dynamically
* New mpc8544ds -machine option: dumpdtb. This allows to dump
the dynamically generated device tree to a file.
* Emulation for e5500 cores
* PC87312 Super I/O chipset emulation for PReP, adding
parallel port to prep machine
x86
* Support for PCI passthrough is available for Xen
fully-virtualized domains.
* The new monitor command "dump-guest-memory" creates an ELF
dump of the guest memory.
* When using KVM, the in-kernel APIC supports MSI.
* Also when using KVM, new PV EOI feature improves performance
when both host and guest run linux 3.6-rc1 and up. To
enable, add +kvm_pv_eoi to -cpu option, e.g.
-cpu kvm64,+kvm_pv_eoi
* The "cpudef" config file section is being deprecated and may
be removed in v1.3.
Device emulation
* VGA and QXL cards (obtained with -vga std and -vga qxl) have
16 MB of VRAM rather than 8 MB.
* Three new SCSI host bus adapter devices are available:
am53c974 and dc390 emulate respectively an AMD PCI PCscsi
and a Tekram DC-390 device, both of which are supported on
older operating systems including MS DOS 6.2, MS Windows 3.11,
98 SE, NT 3.1 and NT 4.0. megasas emulated an LSI SAS1078 RAID
controller. The next version of SeaBIOS will support booting
from am53c974 and dc390 disks.
* An USB-attached SCSI controller is now available.
Audio devices
* The PC speaker audio card is now available by default.
Network devices
* The guestfwd argument to slirp now supports running an
arbitrary command on every TCP connection (as in inetd).
This is invoked by specifying a target that starts with "cmd:".
Block devices
* Emulated IDE and SCSI as well as virtio-blk devices can now
switch the cache mode between writethrough and writeback.
virtio-blk automatically switches to writethrough if the
guest driver doesn't support flushes.
* The default cache mode for images is now writeback.
* Emulated SCSI devices can be given a custom vendor name,
product name and WWN.
* Improved support for passthrough of SCSI tapes and media changers.
* libiscsi can be used together with scsi-generic to pass
iSCSI tapes and media changers to the guest.
* When raw files are streamed, parts of the files that are
holes in the underlying filesystem are treated as
unallocated (as long as the OS supports either the FIEMAP
ioctl or the SEEK_HOLE/SEEK_DATA modes)
* CD-ROM drives can now be used with AHCI
qcow2
* qcow2 images support a new option, lazy_refcounts. If on,
the speed of cache=writethrough mode will be improved, at
the cost of requiring an fsck-like pass (and thus QEMU 1.2)
to use the image again after a power loss.
* qemu-img check can now repair qcow2 and QED images with the
new -r option.
VMDK
* Support for images in the streamOptimized subformat has been
fixed. This is a VMDK subformat commonly used with OVF appliances.
rbd
* rbd no longer ignores the cache setting
Live Migration, Save/Restore
* Migration works much better with guests with large memory.
* USB mass storage and passthrough devices support live migration.
VNC
* The threaded VNC server is now enabled by default.
Guest agent
* A new command "fstrim" was added to the guest agent.
New targets
* OpenRISC is now supported for both user-mode and system emulation.
@
text
@d1 1
a1 1
$NetBSD: patch-configure,v 1.1 2012/06/25 10:07:21 sbd Exp $
@
1.1
log
@hw/usb/hcd_ehci.c will not compile with -O3 optimization so completely
remove it from CFLAGS.
@
text
@d1 1
a1 1
$NetBSD$
d3 1
a3 1
--- configure.orig 2012-06-01 09:13:13.000000000 +0000
d5 2
a6 2
@@@@ -2854,6 +2854,9 @@@@ if test "$debug" = "no" ; then
CFLAGS="-O2 $CFLAGS"
@