109 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
jperkin
|
89913d6a08 | Various patches to fix the build on SunOS. | ||
adam
|
b0cea28a17 |
Changes 2.9.0:
== Warning of unsupported host systems == This release includes changes to the configure script so that it will now report some host operating systems and platforms as "unsupported". These are host setups which we do not have access to and are thus unable to test. They will continue to work in this 2.9 release (though configure will warn you about the unsupported status), but in a future QEMU release we may drop support for those hosts unless somebody volunteers to help us with maintaining them (and can provide build/CI machines). This affects the CPU architectures: * ia64 and the OSes: * GNU/kFreeBSD * DragonFly BSD * NetBSD * OpenBSD * Solaris * AIX * Haiku == System emulation == === Incompatible changes === * Improvements to "-drive": ** "-drive"'s <tt>if</tt> option defaults to "none" on machines that do not have an onboard IDE or SCSI controller. ** "-drive if=scsi" does not work anymore with PC machine types, as it created an obsolete SCSI controller model. QEMU supports better controllers (megasas, mptsas, virtio-scsi) but which to use depends on the guest you are using. ** "Orphan" -drive options, where an <tt>if</tt> option is not supported by the emulated machine (e.g. "if=mtd" on x86) is now a fatal error. It had been triggering a warning since version 2.2. === 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). |
||
riastradh
|
69c5ee42bf | Restore @PREFIX@, not accidental personal /dist/pkg directory. | ||
spz
|
7e5df5e2aa |
Fix qemu/amd64 gub regarding signal4
Closes PR port-amd64/51934 thanks to hannken@ for the pointer to the upstream fixes |
||
adam
|
c0617afd2f |
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. |
||
kamil
|
ab92ef2ac1 |
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 |
||
ryoon
|
bf339530d4 |
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. |
||
spz
|
a623f1a732 | add patches for CVE-2016-7423 and CVE-2016-790[789] from upstream | ||
ryoon
|
2f7131c23b |
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. |
||
ryoon
|
a6bc21154c |
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 |
||
khorben
|
948fbab117 |
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. |
||
dbj
|
3aafc198b9 | slightly better shm_open check fix | ||
dbj
|
a0d2c4b876 | tweak check for shm_open. Fixes build on darwin | ||
ryoon
|
ccb085e4f0 | Build ivshmem* conditionally, fix broken if conditional | ||
ryoon
|
3257477ea7 |
Fix build under NetBSD 6 or other platform that has no shm_open()
Fix PR pkg/50572. |
||
ryoon
|
5ef89a2e4a |
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 <tt>-vnc hostname:0,tls</tt>: <tt>-object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0</tt>
** Equivalent to <tt>-vnc hostname:0,tls,x509=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0</tt>
** Equivalent to <tt>-vnc hostname:0,tls,x509verify=/path/to/certs</tt>: <tt>-object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0</tt>
* 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=<id> -device virtio-blk,iothread=<id>,..." 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, [
|
||
ryoon
|
74d0654325 |
Update to 2.4.0
Changelog: # System emulation ## Incompatible changes * The handling of the floppy device controller is different between <2.4 and >=2.4 machine types that use the Q35 chipset (e.g. "-M pc-q35-2.3" vs. "-M pc-q35-2.4"). This can cause problems if you are defining floppy drives with command-line options such as "-global isa-fdc.driveA=id. * The ARM 'virt' board default interface type has changed from IDE to virtio. This means that some incorrect command lines that we previously silently accepted will now fail with an error message like "qemu-system-arm: -drive file=img.qcow2,id=foo: Drive 'foo' is already in use because it has been automatically connected to another device (did you need 'if=none' in the drive options?)". As the error message suggests, you should add "if=none" to the -drive option to fix this. ## 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. * Host floppy device pass-through (block driver "host_floppy") is deprecated, and will be dropped in a future release. * Block device parameter aio=native has no effect without cache.direct=on. 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 configure option --disable-guest-base is unneeded and will be removed in a future release. ## Alpha * Major fixes to the implementation of floating point exceptions. ## ARM * New board model xlnx-ep108 * Support for ACPI v5.1 tables in the "-M virt" board. * Support for instantiation sysbus devices from the command line (using "-device") in the "-M virt" board. * Emulation of the stream ID for MSI writes, for use in GICv3. * The "virt" board default drive type is now virtio; this means that drives created with if=virtio or with no if= specification will be created as drives plugged into a virtio-blk-pci device. Short form options like -hda will also create this kind of drive. (Note that at time of writing Linux only supports the virt board's PCI controller for 32-bit ARM kernels; support has not yet made it into the 64-bit kernels. So 64-bit guests will need to continue using long command lines and virtio-mmio for now.) Unfortunately this means that some old command lines will need to change -- see the "incompatible changes" section above for details. ## MIPS * More accurate emulation of the dp8393x network card and RC4030 DMA/IOMMU controller. * Support for microMIPS32 R6 emulation (enabled in new "-cpu mips32r6-generic") * Support for unaligned R6 and MSA memory accesses in TCG * Support for XPA in MIPS32 and LPA in MIPS64 (eXtended and Large Physical Addressing) emulation * Support for MIPS UHI semihosting ## PowerPC * The default RAM size for the pseries machine is 512 MB. * Support of PCI device hotplug on SPAPR (pSeries). ## s390 * Channel I/O is now available when running with TCG. Thus, the default machine for qemu-system-s390x is now s390-ccw. * Several other fixes for TCG (emulation) mode. * Extended name and UUID in STSI 3.2.2 information block * Support for reading/writing guest memory while holding the IPTE lock under KVM, including access register mode * Various cleanups in the s390-virtio and virtio-ccw transports * Support for diag288 watchdog (KVM only). * Support for vector registers * Add virtio-1 specific ccws to virtio-ccw (SET_REV and v1 version of SET_VQ) ** Revision 1 (and therefore virtio 1.0) is not yet enabled, however. * The s390-ccw-virtio machine is now versioned; the first versioned machine is s390-ccw-virtio-2.4 ** The s390-ccw alias has been removed ## SH * Optimizations to code generated by TCG. ## SPARC * Fix SunOS 4.1.4 boot on sun4m with OpenBIOS ## x86 * Improvements to system management mode emulation, including support for high SMRAM and TSEG on machines using the Q35 chipset. * q35 machine types starting with pc-q35-2.4.0 do not have a floppy disk controller. It will be created if you use "-drive if=floppy", "-fda" or "-fdb" to add a floppy disk drive, or it can be created if necessary with "-device isa-fdc". * q35 now implements the TCO watchdog. Unlike real hardware, the watchdog is disabled when the virtual machine boot, so as to let existing firmware run with new QEMU. This may change in the future, but the change would be restricted to new machine types. ## KVM * Support for MMIO operations outside the "big QEMU lock". For now, this only applies to the ACPI PM timer, which can alone improve performance substantially for very large Windows guests as long as they do not span multiple NUMA nodes in the host. For guests that span multiple NUMA nodes more kernel changes are required. * Support for system management mode (requires Linux 4.1). * When running under KVM, CPUID information includes the ARAT ("Always running APIC timer") bit # Device emulation and assignment ## ACPI * Support for memory hot-unplug. * S3/S4 states can be disabled for boards using the Q35 machine type via "-global ICH9_LPC.disable_s3=on" and"-global ICH9_LPC.disable_s4=on" ## Block devices * Minimal support in NVMe emulation for the NVME_VOLATILE_WRITE_CACHE feature. * The infamous floppy device controller is not added to Q35 boards if not explicitly requested and no floppy drives are specified with "-drive if=floppy". * I/O throttling now supports "groups" so multiple disks can use share a budget (use -drive groups=<name>) * Performance of the parallels image format block driver has been improved ## Character devices * Improved support for flow control in virtio-serial. ## IDE * Fix macio CDROM detection for PPC * Fix macio data corruption bug under Darwin/OS X PPC * AHCI support rerror=stop and werror=stop. ## Mouse/keyboard * Support for virtio-keyboard, virtio-mouse, virtio-tablet. ## Network * Support for the "rocker" L2 switch device. ## SCSI * scsi-generic now supports migration. ## PCI/PCIe * Support for extra PCI root buses using PCI expander bridge devices. Unlike PCI-PCI bridges, a PCI expander bridge's bus can be associated with a NUMA node, allowing the guest OS to recognize the proximity of a device to RAM and CPUs. ## TPM * Support for TPM 2 ## VFIO * Support for resetting AMD Bonaire and Hawaii GPUs * Platform device passthrough support for Calxeda xgmac devices ## virtio * Support for up to 1024 queues. * Support for ioeventfd in virtio-mmio. * FIXME: virtio 1 * New virtio-gpu device (only supports accelerated 2D for now) * New virtio-input-host, virtio-keyboard, virtio-mouse and virtio-tablet devices (and corresponding virtio-*-pci devices for use on a PCI bus). * Support for cross-endian vhost (i.e. little-endian host and big-endian guest, or vice versa). * vhost can now be enabled even if MSI-X is not * virtio-balloon can tell the guest that it should deflate the balloon on OOM conditions. ## VGA * Support for virtio-vga, a VGA device that also supports the virtio-gpu interface. ## Character devices * Improved support for flow control in spice-char. ## GUI * Support for OpenGL-based display rendering in the SDL2 and GTK+ backend. This is preparatory work for 3D acceleration. * Improvements to the Cocoa front-end, fixing full-screen mode and adding a list of consoles to the View menu. * The two extra keys in Brazilian 107-key keyboards are now usable. ## Monitor * qmp: New MIGRATION event to communicate change in the migration state ## Migration * Support for compression of RAM data using multiple threads for compression and decompression (using migration capability "compress" and migration parameters "compress_threads", "compress_level" and "decompress_threads"). ## Network * Support for multi-queue vhost-user backends. ## Block devices in system emulation * The BLOCK_IMAGE_CORRUPTED event has a new "node-name" field. * FIXME: Throttle groups * Block device mirroring supports concurrent unmap (aka discard or trim) operations on the source device and can create a thin-provisioned image in this case. * Block device mirroring can use discard or "write zero" operations to speed up copying of large zero regions. * FIXME: incremental backup? ## Command-line options * A longhand version of -global (-global driver=DRIVER,property=PROP,value=VAL) is introduced, to set properties globally for devices that have a period in their name. The older syntax -global DRIVER.PROP=VAL did not allow this. * New option -fw_cfg to pass arbitrary binary data to the guest. ## TCG * New command line option "-icount sleep=no". The option will run emulation at the maximum possible speed: every time the CPU would go to sleep, the virtual clock will move to the next timer deadline. For virtual machines that have no other sources of non-determinism (e.g. asynchronous block I/O, character devices or user input) this will also make execution deterministic. # Block devices and tools * The "null" block device now has a new "latency-ns" option to delay the answer from the block device. * The iscsi driver can use the target's FUA capabilities to greatly improve roundtrip times in write-through caching modes (cache.writeback=off). These modes are recommended when the storage has a non-volatile (battery-backed) cache. * Parallels format driver now supports image creation and write to the image. Performance is significantly improved. * qcow2 performance improvements. * qemu-io supports encrypted qcow2 images (which are deprecated). # Audio * Obsolete audio backends have been removed: esd (superseded by pulseaudio), winwave (superseded by dsound), fmod (not compatible with the GPL) # Guest agent * Support for building a .msi file with the Windows version of the guest agent ("make msi"). This requires msitools. * qemu-ga implements guest-get-fsinfo and guest-network-get-interfaces on Windows too # User-mode emulation * The default CPU for qemu-sh4 and qemu-sh4eb is the sh7785. # Build dependencies * QEMU now requires a minimum glib version of 2.22. (In particular, we will no longer build on a stock RHEL5 or Centos 5 system.) * QEMU can now optionally be linked against tcmalloc. * QEMU now compiles using clang 3.5 without warnings, which includes disabling GCC features not supported by clang. * QEMU now compiles with ICC. * libepoxy is required to compile QEMU with OpenGL support. * Building on Mac OS X versions earlier than 10.5 is no longer supported. * Sound on Windows now requires DirectSound (the old 'winwave' default audio backend has been dropped). # Known issues * SDL audio only works with SDL 1.x. * Problems with QEMU for Windows and builds from newer versions of MinGW-w64, see this thread on qemu-devel (this is not a regression, other versions are also affected) ** Crash of 64-bit QEMU (Fix) ** Broken networking (Fix) * Incomplete translations for GTK user interface |
||
khorben
|
aeeda22d7d |
Add patch for CVE-2015-3456.
fdc: force the fifo access to be in bounds of the allocated buffer During processing of certain commands such as FD_CMD_READ_ID and FD_CMD_DRIVE_SPECIFICATION_COMMAND the fifo memory access could get out of bounds leading to memory corruption with values coming from the guest. Fix this by making sure that the index is always bounded by the allocated memory. XXX pull-up where applicable |
||
ryoon
|
78d67b3314 |
Update to 2.3.0
Changelog: * Support for 32-bit KVM guests on 64-bit ARM hosts * Support for running KVM under valgrind * New IvyBridge CPU model for x86 guests * Xen: support for ioreq-server API * New 5KEc and 5KEf MIPS64r2, and M14K and M14Kc MIPS32r2 microMIPS CPU models for MIPS guests * Basic support for transactional memory extentions in PowerPC guests * Improved VGA support for little-endian PPC/pSeries guests * PCI bus support for s390x guests * Support for automatic guest device unplug when passthrough devices are unbound from VFIO host driver * Improved UI performance/support for GTK+/VNC/SDL/Spice, and VNC support for multiseat * Performance improvements for virtio-blk emulation: asynchronous SCSI request handling, and disk read merging. * QEMU Guest Agent: now also supports file operations in Windows guests, can be used to enable/disable memory blocks in linux guests in support for memory hotplug. * Migration can now include a JSON description of migration stream to aid in identifying incompatibilities betweens guests/hosts. * And lots more... |
||
tnn
|
8ad56a8573 |
Replace user-exec.c patch with cleaned up version which was sent upstream.
Includes PR pkg/49723 fix for sparc64. |
||
wiedi
|
041eaf6e20 | fix build on SunOS | ||
snj
|
7e6b85465f |
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) |
||
adam
|
a1cc34c65c |
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... |
||
gson
|
ed8422aec1 |
Fix qemu bug 1335444 aka PR pkg/48071. Patches from Kirill Batuzov,
with minor changes to make them apply to 2.0.0. Bump PKGREVISION. |
||
wiz
|
014679da64 |
Add a patch based on upstream git fixing five different CVEs in one file.
Congratulations. Bump PKGREVISION. |
||
adam
|
2910e152b4 |
Changes 2.0.0:
Incompatible changes All onboard buses now have distinct names, so that all of them can be reached with "-device bus=...". As a result of this, some buses that used to have duplicates got renamed: i2c-bus.0 to i2c-bus.1 for machines n800, n810; virtio-mmio-bus.0 to virtio-mmio-bus.3 for vexpress-a15, vexpress-a9; virtio-mmio-bus.0 to virtio-mmio-bus.31 for virt; usb-bus.0 to usb-bus.1 for xilinx-zynq-a9, fulong2e; ide.0 to ide.1 for isapc, mips, g3beige, mac99, prep; This change requires care when doing migration from 1.x to 2.x QEMU; you need to specify bus=NEW explicitly on the destination for devices on the renamed bus. Another bus rename is pci to pci.0 for pseries. This does not require as much care on migration; if you were specifying "bus=pci" explicitly, QEMU will not start unless you change that to "bus=pci.0". qemu-system-arm no longer defaults to the obsolete "integratorcp" if no machine is specified on the command line (this was a recurring source of confusion). Users with existing integratorcp images will need to add "-M integratorcp" to the command line if it is not already present. 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 2.1, -readconfig will standardize on the name fo the command line option. ARM Support for "-M virt", a board type that only uses virtio devices Support for "-cpu host" when running under KVM Support for new 32-bit mode ARMv8 instructions in TCG Support for all 64-bit mode ARMV8 user-accessible instructions except for the optional CRC and crypto extensions Support for AArch64 disassembling (requires a C++ compiler to be installed on the host) Initial support for KVM on AArch64 systems (some features such as migration are not yet implemented) Support for the Canon PowerShot A1100 DIGIC board using "-M canon-a1100" Support for the allwinner-a10-based board "-M cubieboard" Support for flow control in the Cadence UART "integratorcp" is no longer the default machine (see the 'incompatible changes' section above) Power Support for Altivec 2.07 and VSX instructions when running under TCG Support for ISA 2.06 "load/store quadword instructions", "divide extended instructions" and "floating-point test instructions" when running under TCG PReP is not anymore (incorrectly) included in qemu-system-ppcemb Improved support for "-nodefaults" on the pSeries machine. Display devices created with "-device VGA" will be handled correctly in the device tree. Support for boot order in pSeries emulation s390 Support for adapter interrupts in virtio-cc2 SPARC Support for Sun CG3 framebuffer with the Sun4m machine. The CG3 framebuffer can be requested with "-vga cg3". Support for the CASA compare-and-swap instruction in TCG. x86 On the Q35 machine, the HPET interrupt can now be attached to GSIs 16-23, like on real hardware. The Q35 machine now supports CPU hotplug. Two flash chips can be specified using the "-drive if=pflash" or "-pflash" options twice. Memory layout has changed slightly; to improve performance, the PIIX4 machine ("-M pc") now has 3GB of low memory instead of 3.5GB if the guest has more than 3.5GB of memory. Similarly, the Q35 machine ("-M q35") now has 2GB instead of 2.75GB of low memory if the guest has more than 2.75GB of overall memory. Support for migration of Intel MPX registers. The Apple SMC device is now exposed in the ACPI tables. On the PIIX machine, PCI hotplug now supports devices behind a bridge (only for bridges not added by hotplug; hot-plugged bridges can still use the PCI Standard Hot-Plug Controller). Support for the Hyper-V reference time counter via the "hv-time" suboption of "-cpu". This can improve performance of Windows guests substantially for applications that do many floating-point or SIMD operations. (Requires KVM and Linux 3.14). The distributed qemupciserial.inf file now allows installing multiport PCI serial devices on Windows too. ACPI tables generated by QEMU can now be used by OVMF firmware. OVMF starting with SVN r15420 is needed. In particular hotplug, pvpanic device and other ACPI based features now work for OVMF. KVM x2apic is now enabled by default when KVM is in use. Xen PCI passthrough of devices with a ROM now works. Xtensa added support for ML605 and KC705 FPGA boards. Cache-related opcodes now correctly check privilege level/memory accessibility. |
||
wiz
|
9684e6f3d7 |
Update to 1.7.0, from tsutsui.
Changes: System emulation Device emulation Audio The HDA device emulation now includes a mixer by default. Previously this had to be enabled with the configure argument "--enable-mixemu" when building QEMU. Audio will work correctly on systems without OSS (/dev/dsp). On previous versions, those systems needed special arguments to "configure" for audio to work out of the box. Audio honors the QEMU_AUDIO_TIMER_PERIOD environment variable and has less CPU utilization by default than previous versions. Block devices Support for the LSI 53C810 SCSI HBA, which unlike the 895A is supported on some very old Windows NT versions. Device assignment VFIO now supports setting CPU affinity on MSI interrupts. VFIO can now reset assigned devices much more reliably using either PCI function-level reset (FLR), power management, or a reset (done by the kernel) of the parent bridge. Several improvements to the reliability of using option ROMs for devices that are assigned with VFIO. USB Performance and functionality improvements for USB 3.0. MicroBlaze Can now specify an initrd on the command line. PowerPC PowerPC now supports the dump-guest-memory command. s390x The "nmi" command will trigger a crash dump from kdump, using a RESTART interrupt. The SCLP line-mode console ("operating system messages") can be accessed with "-device sclplmconsole". x86 ACPI tables can be generated by QEMU and can be used by firmware directly. This will in the future enable new features without modifications of all firmware components (SeaBIOS, OVMF, CoreBoot) Initial support for supporting more than 1TB of RAM (but firmware does not yet support this). Xen HVM domains can now resume from suspend-to-RAM (S3) state. Monitor Subcommands (like "info block") can now autocomplete their options. Help for a single subcommand can be printed with a monitor command such as "help info block". New commands "blockdev-snapshot-internal-sync", "blockdev-snapshot-delete-internal-sync" improve support for internal qcow2 snapshot. New command "blockdev-add" provides a QMP interface for block device hotplug. Block devices The throttling algorithm has been rewritten; the new code is more robust, and supports configuration of separate limits for sustained I/O vs. I/O bursts Migration Migration was broken from QEMU <= 1.5 to 1.6; the new release fixes it. User-mode emulation M68K ColdFire emulation supports atomic system calls. Block devices, qemu-img, qemu-io The sheepdog driver supports automatic reconnect after network errors The VMDK driver supports files produced by VMWare ESX. The qcow2 driver can detect some cases of corruption, and will prevent writing to a corrupted image. The VHDX driver supports creating and writing .vhdx images. The metadata of a file (where each sector of the guest image is stored in the file on the host) can be dumped in human-readable or JSON format using a new command "qemu-img map". Guest agent The "filesystem freeze/thaw" commands are now supported on Windows too, where they will invoke the native Volume Shadow Copy Service (VSS). Miscellaneous For targets that have no embedded disassembler, QEMU will now produce hexadecimal dumps instead of just emitting an error when a disassembly is requested. The enclosed script disas-objdump.pl can be used, together with an external objdump program, to convert the dump to a readable disassembly. Host support TCG now runs on x32 hosts. Known issues On Win32, QEMU must be compiled with --disable-coroutine-pool to work around a suspected compiler bug. The GTK terminal windows (monitor, serial console, parallel, ...) are still unusable in TCG mode: they lose characters and can raise deadlocks. |
||
hubertf
|
88c1a50d88 |
Make this build on Mac OS X 10.7.x - the linker needs ranlink ran
(via ar), else it will fail to link. OK joerg@ |
||
joerg
|
aa99a1cefc | Provide some sane ARFLAGS. | ||
ryoon
|
101fb00429 |
Update to 1.6.1
Changelog: * Improve tap networking support for *BSD. * Bugfixes |
||
adam
|
3d3c9afb1f |
Changes 1.6.0:
Block devices * New device "nvme" provides a PCI device that implements the NVMe standard. * Fix for a possible data loss on crashes with IDE disks (due to mishandling of FLUSH requests) Device assignment * Legacy PCI assignment supports CPU affinity for MSI interrupts. USB * The XHCI (USB 3.0) controller supports live migration. PCI * ACPI hotplug of devices behind a PCI bridge is supported. ARM * The 32-bit ARMv8 LDA/STL instructions for load-acquire/store-release are supported (only with -cpu any); the remainder of the new v8 instructions will follow in a future release. * The vexpress-a9 and vexpress-a15 boards have experimental support for virtio devices via a virtio-mmio transport. Note that the virtio command lines used with x86 systems won't work as they will create PCI virtio devices; use the devices "virtio-blk-device", "virtio-net-device", etc instead. Note that this functionality may change in future releases. * The -initrd option now accepts ramdisks with a U-Boot header. * A model of the Calxeda ECX-2000 / Midway system is now supported ("midway"). PPC * Mac OS X guests supported (10.2-10.4 for PPC, 10.4 for PPC64) * pSeries guests support live migration and savevm. s390x * If the kernel supports it, virtio-ccw supports ioeventfd and vhost when running on KVM. * The dump-guest-memory command is supported. SPARC * Sun4c and Sun4d architectures and related CPUs were not fully implemented and have been removed. * 24-bit display mode works x86 * Firmware can be exposed to the guest as a flash device (using -pflash) also when running on KVM. * In addition to the "xenfv" machine type, which is kept for backwards compatibility, Xen can now use the pc machine type (including versioned machine types) using "-M pc -machine accel=xen". Note that using PV-on-HVM drivers requires "-M pc -machine accel=xen -device xen-platform". * QEMU can expose the full set of ACPI tables to the guest: See Features/ACPITableGeneration * Conroe, Penryn and Nehalem CPUs have had their CPUID values fixed * "-M isapc" now works on KVM too. * -pflash can be used with KVM too. more... |
||
tsutsui
|
76a73cd850 |
Update qemu to 1.5.1.
pkgsrc changes:
- remove now unnecessary SUBST for audio.h conflicts
- update PLIST for new files
- adjust patches for hw directory reorganization
- update counting semaphore patches per comments on qemu-devel
Upstream changes:
Changes mentioned in 1.5.1 announcement:
http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg04798.html
295d81c: Update VERSION for 1.5.1 release (Anthony Liguori)
cc0bd7e: wdt_i6300esb: fix vmstate versioning (Michael Roth)
12e5b2b: virtio-rng: Fix crash with non-default backend (Cole Robinson)
cb55efe: iscsi: reorganize iscsi_readcapacity_sync (Paolo Bonzini)
1b94fc4: iscsi: simplify freeing of tasks (Paolo Bonzini)
5e690bb: vhost-scsi: fix k->set_guest_notifiers() NULL dereference (Stefan
Hajnoczi)
129db36: scsi-disk: scsi-block device for scsi pass-through should not be
removable (Pavel Hrdina)
|
||
tsutsui
|
6708aad438 |
Fix a hangup problem under load of multiple disk xfers on NetBSD hosts.
- fix a "fallback implementation of counting semaphores with mutex+condvar": http://git.qemu.org/?p=qemu.git;a=commit;h=c166cb72f1676855816340666c3b618beef4b 976 - waiting threads are not restarted properly if more than one threads are waiting unblock signals in qemu_sem_timedwait() - possible missing pthread_cond_signal(3) calls when waiting threads are returned by ETIMEDOUT - fix an uninitialized variable Discussed with and patch is provieded by soda@. XXX: configure should check if the target system has sem_timedwait(3) to switch this fallback implementation since sem_timedwait(3) has been added in NetBSD -current: http://mail-index.NetBSD.org/source-changes/2012/03/08/msg032625.html http://mail-index.NetBSD.org/source-changes/2012/03/08/msg032626.html Bump PKGREVISION. |
||
tsutsui
|
906743ef6b |
Make qemu-1.4.2 build on NetBSD/arm 6.1
NetBSD/i386 6.1 on QEMU on NetBSD/hpcarm 6.1 on W-ZERO3 somewhat works. |
||
tsutsui
|
6011a0ae85 |
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. |
||
ryoon
|
99120ed21a |
Update to 1.3.0
Changelog: QMP The sendkey monitor command is now available via QMP. All targets QEMU can now use the Linux VFIO driver to assign PCI devices to a virtual machine. The bus master configuration bit for PCI devices is now emulated. PCI devices cannot anymore perform DMA without setting the bit before. This may break firmware that wasn't tested on real hardware. MIPS Loongson Multimedia Instructions are now implemented. MIPS32/64 ASE DSP Instructions are now implemented. x86 The TSC frequency can be larger than 2.147 GHz. Configuration files do not support anymore the cpudef section. TCG (emulation) supports the SMEP (Supervisor Mode Execution Prevention) and SMAP (Supervisor Mode Access Prevention) features of newer x86 processors. CPUID/models? The "cpudef" config file section is now deprecated and will be removed in v1.4. New CPU models: "Haswell" (new features: fma, pcid, movbe, fsgsbase, bmi1, hle, avx2, smep, bmi2, erms, invpcid, rtm) and "Opteron_G5" (new features: tbm, f16c, fma) Added Intel Q35 chipset as a new machine type, '--machine q35'. Adds PCIe support. Requires an updated SeaBIOS (bios.bin), and '-acpitable file=/seabios-path/q35-acpi-dsdt.aml' to run. Xtensa Single precision floating point instructions are now implemented. Device emulation Emulation of the MC146818 real-time clock (used on PC and several other boards) does not wake up QEMU anymore every second to update the clock. USB3 has been vastly improved, including support for USB mass storage devices and MSI/MSI-X support for the XHCI controller. USB redirection now supports live migration. Several bugs in the AHCI controller were fixed to support recent Windows versions. ivshmem now has a "use64" property which will make the ivshmem driver register a 64-bit memory BAR. New paravirtualized hardware random number generator device, VirtIORNG. Network devices Some problems were fixed leading to bad receive performance of E1000 and Xen network cards. Block devices qemu-img now can output information in JSON format using "qemu-img info --output=json". Glusterfs volumes can be accessed with "gluster://" URIs for "-drive" and similar options. Optionally the transport can also be specified, as in "gluster+tcp://" (other supported transports are "unix" and "rdma"). Options on the QMP streaming command direct the job to pause on encountering errors, or to ignore them altogether. A new block job is supported: live block commit (also known as "snapshot deletion") moves data from an image to another in the backing file chain. With the current implementation of QEMU 1.3, the "source" image may not be the active one. A new block job is supported: live disk mirroring (also known as "storage migration") moves data from an image to another. A new command "block-job-complete" is used to switch the VM to use the destination image exclusively. Block jobs can now be paused and resumed from the monitor. NBD block devices can now be specified using URI syntax. "nbd://" defaults to TCP transport, while "nbd+tcp://" and "nbd+unix://" can be used (similar to Gluster) to specify it. URI syntax simplifies access to named exports; the export name is simply the "path" component of the URI. NBD connections to Unix sockets support relative paths. QEMU embeds an NBD server, accessible via the monitor. The NBD server allows live access to the image seen by the VM. Note that the embedded server uses "named exports", which QEMU can access using the "nbd://host:port/name" syntax. Windows hosts support asynchronous disk I/O. Live Migration, Save/Restore The "stop" and "cont" commands have new semantics on the destination machine during migration. Previously, the outcome depended on whether the commands were issued before or after the source connected to the destination QEMU: in particular, "cont" would fail if issued before connection, and "undo" the effect of the -S command-line option if issued after. Starting from this version, the effect of "stop" and "cont" will always take place at the end of migration (overriding the presence or absence of the -S option) and "cont" will never fail. This change should be transparent, since the old behavior was usually subject to a race condition. The monitor now remains responsive during incoming migration. The new NBD server is also available during incoming migration. Spice QEMU will only send changed screen content to the Spice client when running in legacy VGA mode. Seamless migration support. Composite QXL commands (for linux guests). Multiple monitors on a single pci device. Arbitrary resolution support. Device based monitor configuration notification (for future drivers). various bug fixes and assertion removals in favor of a guest_bug mode. require spice-server >= 0.12.0 KVM QEMU now supports "old-style" PCI device assignment, which was the last missing feature from the qemu-kvm fork. Despite some remaining minor differences between qemu-kvm and QEMU, it is possible to switch from qemu-kvm to QEMU as soon as your guests can be rebooted. Live migration from qemu-kvm 1.2 to QEMU 1.3 is not supported, but can be enabled easily by downstream distributions who want to switch their packages from qemu-kvm to QEMU. Xen QEMU can now be used to live-migrate Xen domains. SLIRP SLIRP's TFTP server has improved performance, can transmit files bigger than 32 MB, and supports the block size option. Guest agent The guest agent will now store the state file in /var/run by default. Host support SPARCv7 and v8 support was removed. Build dependencies QEMU can now be built with Clang. QEMU now uses pixman. QEMU configure will detect and use a system pixman if the development headers are ailable (they should be available for most recent Linux distros). As a fallback, we provide an internal copy of the pixman sources which will be used if there is no set of system pixman libraries. Compiling these will require autoconf. Compiling QEMU ver 0.12 or better. |
||
adam
|
e8cd77f78b | Fixed building on Darwin; fixed building with Clang; fixed some pkglint issues | ||
asau
|
2e5d5d4b85 |
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. |
||
asau
|
7cddbd72a2 | Make it understand "-net tap,ifname=tap3" on NetBSD. | ||
sbd
|
d2e21e2e6b |
hw/usb/hcd_ehci.c will not compile with -O3 optimization so completely
remove it from CFLAGS. |
||
martin
|
951ba2740d | Fix emulation of esp commands when not using dma. | ||
ryoon
|
fd975aef7c |
Update to 1.1.0
* based on wip/qemu Changelog: 1.1.0 System emulation All targets qdev properties of type hex8 and hex32 used to accept hexadecimal values not prefixed with "0x"; the prefix is mandatory starting with this version. These properties are: iobase, membase, io_base for all devices that support the properties; vram_size for sysbus-g364 and SUNW,tcx; version for sb16 and iommu; ctl_iobase and data_iobase for fw_cfg; readback for debugcon; elcr_addr and elcr_mask for i8259. PCI addresses can still be addressed with a pair of hexadecimal device and function without a "0x" prefix. -kernel, -initrd and -append are now aliases for suboptions of -machine (for example -machine kernel=foo), and as such they are also available with -readconfig. PCI-to-PCI bridges are supported [...] PCI emulation includes a standard hot-plug controller [...] The coroutine backend can now be configured using configure --with-coroutine=.... A new coroutine backend sigaltstack is available for platforms that don't support the default ucontext backend. Last but not least: the SDL user interface now uses the new QEMU icon. ARM The syborg machine type has been removed since the Symbian Virtual Platform is no longer relevant with the disbanding of Symbian. A device tree can be passed to the kernel using -dtb option (or alternatively -machine dtb=...). New 'nuri' and 'smdkc210' models of Samsung Exynos4210 based devboards. New 'highbank' model of the Calxeda Highbank. New 'vexpress-a15' model of the Versatile Express Cortex-A15. PowerPC The Bamboo machine now works with TCG, before only KVM was able to execute 440 code. Pseries handles PCI, allowing for virtio devices with -M pseries. Pseries works with PR KVM allowing for -M pseries -enable-kvm to work on G5s. We can now emulate e500mc cores, but no e500mc based board is emulated yet. You need to use -M mpc8544ds and a special guest kernel. Timers on ppc405 now work and don't segfault QEMU. S/390 Added support to -kernel to allow booting of ELF binaries. Fixed -kernel to allow booting of newer guest kernels. Devices can now be hotplug add'ed (remove is not there yet). Rebooting a virtual machine now works. SPARC Added interrupt controller and support of vector interrupts. Fixed handling 32 bit instructions on a sparc64 CPU. Fixed block load instructions regression happened in 1.0 release. Fixed BCD mask in m48t59 emulation, so that Solaris 2.5.1 doesn't hang on sun4m emulation when day of month >21. Fixed initrd loading in qemu-system-sparc64. x86 NMIs are correctly injected through the LAPIC (rather than sent directly to the guest CPU) and respect the LINT1 mask, thus fixing kdump. The -rtc-td-hack option is now available as a qdev property (-global mc146818rtc.lost_tick_policy=slew) and as such can be specified in a -readconfig configuration file. When the system is suspended to RAM, QEMU will now stop executing the guest until a wakeup event occurs. Implemented wakeup events include key presses, mouse button presses, RTC alarm, ACPI timer expiration, serial console input (off by default; enable with -global isa-serial.wakeup=1), and the system_wakeup monitor command. KVM can optionally use kernel-based emulation of the local APIC, IOAPIC, i8259 PIC and i8254 PIT. This is supported with the -machine ...,kernel_irqchip=on command-line option. MSI is not supported yet when using the kernel_irqchip option. Emulation of a PC System Flash device. The feature is enabled by adding a pflash drive. This feature is not supported when KVM is enabled. See Features/PC System Flash for more information. KVM guests support Hyper-V enlightenments. These are enabled by the -cpu features hv_spinlocks, hv_relaxed and hv_vapic. Device emulation The virtio-scsi device is now supported by QEMU. The guest driver will be supported in Linux starting at version 3.4. QEMU now includes experimental support for USB 3.0 (xHCI). Various improvement on the floppy emulation, most notably media change has been fixed Audio devices Audio devices can now use volume control capabilities exposed by the PulseAudio and Spice backends. (Note: all audio devices do not expose their volume control unless --enable-mixemu is turned on). Block devices QEMU's NBD client implementation and the qemu-nbd server both fully support asynchronous I/O. The rbd block driver supports the discard operation now The vpc block driver supports the Fixed Disk subformat of VHD images now The new QMP command transaction can be used to perform a set of multiple snapshots atomically, rolling back to the original images if there is a problem along the way. See Features/SnapshotsMultipleDevices for more information. The new monitor command block_stream lets guest copy data from the backing file to the current image while the guest is running. This lets users enables quick provisioning of new virtual machines using shared remote storage, and lets the guest transition incrementally to fast local storage. An alternative to streaming is the copy-on-read option of the -drive command-line option, which only transfers data when the guest needs it. An experimental extension of the qcow2 file format has been introduced. With the implementation as of QEMU 1.1, the most important addition is zero clusters, which allows image streaming and copy-on-read to leave images sparse if the backing file they are copying from is sparse. In order to enable the extension, use qemu-img create -f qcow2 -o compat=1.1 <filename> <size> for creating the image. Note that older versions of QEMU won't be able to read such images. I/O throttling is experimentally supported using the new -drive options bps/bps_rd/bps_wr/iops/iops_rd/iops_wr. It is expected to work with virtio-blk and IDE harddisks, but may lead to hangs when used with CD-ROM or floppy emulation or other devices. qemu-io supports new options to enable tracing and to choose a cache modes Network devices QEMU supports a new type of network device, bridge (used with -net bridge or -netdev bridge). The new type is similar to tap, but uses a helper program instead of a script to attach the device to a bridge. The helper program can then be installed as setuid. The helper program supports a simple ACL and configuration mechanism, see the commit message and feature page for documentation. Live Migration, Save/Restore Live migration (or save/restore) from QEMU releases prior to 0.13 to QEMU 1.1 is not supported. Live migration supports IPv6. IPv6 addresses can be expressed as tcp:host:port. Brackets around a numeric host address are required if a port is also specified, otherwise they can be omitted. Guest agent qemu-ga has been ported to Windows. Interfaces added for suspending guests to disk/ram, and retrieving information about network interfaces Interfaces for filesystem freeze have been hardened, and no longer depend on guest agent runtime state to determine whether a system is currently frozen. An easier to use reset mechanism has been added: guest-sync-delimited. Host support ARM hosts are now supported again (they were broken in 1.0). Sockets and SLIRP on Windows hosts was broken in 0.14 and works again. 64-bit Windows hosts are now supported. User-mode emulation User-mode emulation can provide some information from the /proc filesystem. On 64-bit hosts user-mode emulation now defaults to reserving 0xf7000000 bytes of address space for the guest. This significantly reduces the likelihood of QEMU having to fail a guest mmap() request when there is still memory available. This reservation can be overridden with the -R command line option. Testing A make check target has been implemented and runs some quick sanity tests qemu-iotests, which was previously hosted in an external git repository, has been merged into the QEMU source tree Build dependencies Building QEMU requires glib 2.12 on POSIX systems, and glib 2.20 on Win32 systems. Changelog: 1.0.1 * Version 1.0.1 * Merge branch 's390-1.0' of git://repo.or.cz/qemu/agraf * Merge branch 'ppc-1.0' of git://repo.or.cz/qemu/agraf * e1000: bounds packet size against buffer size * s390: fix cpu hotplug / cpu activity on interrupts * s390x: add TR function for EXECUTE * pseries: Don't try to munmap() a malloc()ed TCE table * pseries: Populate "/chosen/linux,stdout-path" in the FDT * pseries: Add a routine to find a stable "default" vty and use it * pseries: Emit device tree nodes in reg order * kvm-ppc: halt secondary cpus when guest reset * pseries: Fix array overrun bug in PCI code * console: Fix segfault on screendump without VGA adapter * Merge branch 'master' of ssh://git.qemu.org/pub/git/qemu-stable-1.0 * rbd: always set out parameter in qemu_rbd_snap_list * Documentation: Add qemu-img -t parameter in man page * qemu-img rebase: Fix for undersized backing files * coroutine: switch per-thread free pool to a global pool * qiov: prevent double free or use-after-free * PPC: Fix linker scripts on ppc hosts * target-sh4: ignore ocbp and ocbwb instructions * usb-ohci: td.cbp incorrectly updated near page end * usb-host: properly release port on unplug & exit * usb-storage: cancel I/O on reset * Fix parse of usb device description with multiple configurations * pc: fix event_idx compatibility for virtio devices * pc: add pc-0.15 * cris: Handle conditional stores on CRISv10 * configure: Enable build by default PIE / read-only relocation sections on OpenBSD amd64/i386. * target-i386: fix cmpxchg instruction emulation * hw/9pfs: Use the correct signed type for different variables * hw/9pfs: replace iovec manipulation with QEMUIOVector * hw/9pfs: Use the correct file descriptor in Fsdriver Callback * hw/9pfs: Add qdev.reset callback for virtio-9p-pci device * hw/9pfs: Reset server state during TVERSION * hw/9pfs: use migration blockers to prevent live migration when virtfs export path is mounted * hw/9pfs: Improve portability to older systems * exec.c: Fix subpage memory access to RAM MemoryRegion * malta: Fix regression (i8259 interrupts did not work) General i386-softmmu is no longer named qemu but instead referred to as qemu-system-i386 for better consistency with other targets. A new tool is likely to be introduced that uses the qemu name so distributions are advised to not undo this change. QEMU now uses a separate thread for VCPU execution. This merges the biggest difference between the qemu-kvm tree and upstream QEMU. A new memory dispatch API has been added internally. A new monitor command "info mtree" can show the hierarchy of memory regions in the guest. QEMU now has a build dependency on glib and makes extensive use of glib. QEMU now can run on more hosts. Hosts without a native code generator can use the TCG interpreter (TCI). See Features/TCI for more information. Block devices (disks) QEMU now supports I/O latency accounting in the monitor command "info blockstats". Errors are now tracked per device and are shown by the monitor command "info block". All image formats now support asynchronous operation. IDE and SCSI emulation will use this feature, while other devices (notably floppy and SD) will not. IDE/ATAPI A large number of bugs were fixed regarding CD media change and tray locking. SCSI Memory management errors could crash QEMU when scsi-disk encountered I/O errors. Many instances of this problem were fixed. The accuracy of error handling for SCSI emulation has been greatly improved. SCSI devices can now be addressed by channel, target (id) and LUN. Not all emulated HBAs will support this feature (in particular, the LSI controller will not). Block device pass through is now supported through a new scsi-block device. The scsi-block device works with block devices (like /dev/sda or /dev/sr0) rather than /dev/sgN devices, and is more efficient because it does not consume arbitrary amounts of memory when the guest does large data transfers. SCSI CD-ROMs now report media changed events. SCSI CD-ROMs now support DVD images. Bugfixes for IDE media change also apply to SCSI. SCSI devices now report a unit attention condition when the system is started or reset. This may cause problems with old firmware versions. VDI Now supports discarded blocks in dynamically-sized images. User-mode networking (SLIRP) SLIRP can process ARP replies and gratuitous ARP requests from the guest. ARM QEMU now supports the new Cortex-A15 instructions in linux-user mode (via "-cpu any"): VFPv4 fused multiply-accumulate (VFMA, VFMS, VFNMA, VFNMS) and also integer division (UDIV, SDIV). The vexpress-a9, versatileab, versatilepb and realview-* boards now have audio support. QEMU is known not to work on ARM hosts in this release. (ARM target emulation is fine.) pSeries sPAPR VIO devices can now be created with -device. Xtensa QEMU now supports DC232b and FSF xtensa CPU cores. QEMU now supports sim (similar to Tensilica ISS) and LX60/LX110/LX200 machines. Migration QEMU now supports live migration using image files like QCOW2 on shared storage |
||
gson
|
1d3f55c61b |
When setting up an outgoing user mode networking TCP connection,
disable the Nagle algorithm in the host-side connection. Either the VM is already doing Nagle, in which case there is no point in doing it twice, or it has chosen to disable it, in which case we should respect that choice. This change speeds up GDB remote debugging over TCP over user mode networking by multiple orders of magnitude. |
||
ryoon
|
712e043bac |
Restore missing patches. It is my mistake.
* patch-aa is for tap detection bug. * patch-bb is for build on NetBSD 4. The patch-aa requires bump of PKGREVISION. Pointed out by Sergey Svishchev in private e-mail. |
||
ryoon
|
a9338ea4ce |
Update to 0.15.0
* Many bug fixes and improvements * Add LatticeMico32 and unicore32 targets are added. * And many changes. See http://wiki.qemu.org/ChangeLog/0.15 Tested on NetBSD/i386 current, NetBSD/i386 5.1, DragonFly/i386 2.10.1, and Gentoo Linux/i386. |
||
ryoon
|
0cd2efbfd9 | Add comment to patch. | ||
ryoon
|
a73eb89685 |
* Remove obsolete comments from patch-ej.
* Add * to pointer to function. No functional change. Thanks for tsustui@ |
||
ryoon
|
bd26e91b14 |
Update to 0.14.1
* New features are not tested yet, for example SPICE protocol support. * I have tested on NetBSD/i386 5.99.54 and DragonFly/i386 2.10.1 as host, NetBSD/{amd64, i386, sparc} as guest. Changelog: 0.14.1 virtio-blk: fail unaligned requests qed: Fix consistency check on 32-bit hosts exit if -drive specified is invalid instead of ignoring the "wrong" -drive vhost: fix dirty page handling Do not delete BlockDriverState when deleting the drive vnc: tight: Fix crash after 2GB of output lan9118: Ignore write to MAC_VLAN1 register Don't allow multiwrites against a block device without lsi53c895a: add support for ABORT messages virtio-pci: fix bus master work around on load fix applesmc REV key rbd: don't link with -lcrypto net: Add the missing option declaration of "vhostforce" lsi53c895a: Update dnad when skipping MSGOUT bytes Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels" isa-bus: Remove bogus IRQ sharing check virtio-net: Fix lduw_p() pointer argument of wrong size hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS vnc: Fix fatal crash with vnc reverse mode qemu-char: Check for missing backend name 0.14.0 Targets ARM Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. MIPS Host CPU consumption for idle guests Timer fixes FPU improvements SH4 Various bug fixes and improvements including SM501 2D engine copyrect support, needed to boot recent kernels MMU mmaped TLB access, needed to boot recent kernels Floating point exceptions and correct NaN support. PPC Fix running recent PPC64 kernels New maintainer: Alexander Graf Improve interrupt injection with KVM Enable PV enabled guests for speedup with KVM Floating point fixes Add a ppc-440x5 Xilinx model Add a virtex5 ml507 refdesign board for ppc-440x5 BookE MMU emulation improvements s390x No news, business as usual. SPARC Fix div(cc) and sdiv(cc) instruction emulation, fixes Xorg crash in the guest Hosts ARM Fix random crashes Fix 64-bit big-endian targets support MIPS Fix random crashes IA64 Fix random crashes for 32-bit targets Devices IDE / AHCI Added emulation layer for an ICH-9 AHCI controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports NCQ, so multiple read or write requests can be outstanding at the same time. to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 SCSI Various bug fixes, no new features. USB Added USB support for remote wakeup, allowing the guest to suspend the USB bus when idle, which in turn reduces the CPU overhead of an idle machine. The USB subsystem also got a bunch of patches to prepare it for USB 2.0 support. virtio virtio-pci can use ioeventfd for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution. This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. Various fixes and stabilization for live-migration: Various virtio-net improvements: Make tx_timer timeout configurable Limit number of packets sent per TX flush Introduce a new bottom half packet TX Fix cross-endianness support PCI/PCI Express Improved PCI Express support and functionalities with the implementation of: flr (Function Level Reset) aer (Advanced Error Reporting) and other improvements A new monitor command to inject errors into the PCI bus: pcie_aer_inject_error Implementation of Message Signaled Interrupts (MSI/MSI-X) support Separation of the PCI bridge code from the main PCI code. Sound New Intel HD Audio support, adding three new devices: intel-hda: Intel HD Audio Controller, the PCI device. hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y). hda-output: HDA Codec without recording support. Subset of the hda-duplex codec. Use this if you don't want your guests access your mic. Usage: add '-device intel-hda -device hda-duplex' to your command line. Tested guests: Linux works. Win7 works. DOS (mpxplay) works. WinXP doesn't work. Real Time Clock Fix binary/BCD mode switch Video Fix cirrus VGA crash with some guests Fix curses big endian support Block Drivers qcow2 Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. Copy snapshots out of QCOW2 disk, eg: qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img Zero-copy read and write operations Other fixes and code cleanups: qcow2: Invalidate cache after failed read block: Allow bdrv_flush to return errors qcow2: Simplify image creation qcow2: Fixes unaligned access on IA64 qed Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity. Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. More information about qed: http://wiki.qemu.org/Features/QED Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html ceph/rbd Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph. More information about ceph: http://ceph.newdream.net/ nbd Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. Introduce NBD named exports. Spice New support for the SPICE protocol. The project main focus is to provide high-quality remote access to QEMU virtual machines. More information about SPICE can be found at the project's web site: http://spice-space.org/ New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server). The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory. Local rendering is also used to support display over vnc and sdl. qxl is activated using -vga qxl. qxl supports multihead, additional cards can be added via '-device qxl. Relevant commits: spice: core bits spice: add keyboard spice: add mouse spice: simple display spice: add tablet support spice: tls support spice: make compression configurable. spice: add config options for channel security. spice: add config options for the listening address spice: add misc config options spice: add audio spice: add qxl device spice: connection events. QMP / monitor TODO: QMP is now stable, except for error reporting? The work to facilitate the management of QEMU instances has been improved. QMP has received various fixes. Now it is possible to call a traditional monitor command through QMP, in case your application depends on the output or the command is not yet ported to QMP. New commands: query-spice / info spice human-monitor-command set_password drive_del block_resize command, allowing resizing of block devices while qemu is running. For virtio-blk the size is updated automatically when this command is issued on the host. IDE is not supported. For SCSI devices the new size can be updated in Linux guests by doing the following shell command: echo > /sys/class/scsi_device/0:0:0:0/device/rescan Tracing Introduction of platform-independent tracing, more information about it: http://wiki.qemu.org/Features/Tracing Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt Some relevant commits: Add trace-events file for declaring trace events Add a DTrace tracing backend targetted for SystemTAP compatibility Add LTTng Userspace Tracer backend Add simple built-in tracing backend Add stderr trace-event backend: Support for dynamically enabling/disabling trace events Specify trace file name Add trace-file command to open/close/flush trace file Other stuff Extend -option-rom command to have additional parameter bootindex Little endian / big endian MMIO framework. Until now, most devices had special hacks to allow them to work on big and little endian systems (ppc / x86). With that framework, they should mostly work with both and not require and device specific hacks anymore. |
||
shattered
|
7ccd6c3da9 | PR/44325 PR/42899 -- fix build on netbsd-4 | ||
tsutsui
|
b8146c6ef5 |
Fix botch in patch-ej rev 1.1. PR pkg/44680
Also note about change in rev 1.2. |