diff options
author | ryoon <ryoon> | 2013-01-24 17:52:01 +0000 |
---|---|---|
committer | ryoon <ryoon> | 2013-01-24 17:52:01 +0000 |
commit | 8bee02e4d734d70a92349b8cb8b0d7d4a79b009f (patch) | |
tree | e2fc2de9c2411540015d3d2200a70d648f96b637 /emulators/qemu | |
parent | 17a8dcd79bd5fd9c46b39832f2dcac41cef002c2 (diff) | |
download | pkgsrc-8bee02e4d734d70a92349b8cb8b0d7d4a79b009f.tar.gz |
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.
Diffstat (limited to 'emulators/qemu')
-rw-r--r-- | emulators/qemu/Makefile | 7 | ||||
-rw-r--r-- | emulators/qemu/PLIST | 3 | ||||
-rw-r--r-- | emulators/qemu/distinfo | 17 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-dyngen-exec.h | 15 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-et | 8 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-hw_ppc__newworld.c | 14 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-hw_ppc__oldworld.c | 14 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-memory.c | 14 |
8 files changed, 35 insertions, 57 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index 5153aaaa468..136efb21fe2 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.104 2013/01/16 05:44:49 taca Exp $ +# $NetBSD: Makefile,v 1.105 2013/01/24 17:52:01 ryoon Exp $ -DISTNAME= qemu-1.2.0 -PKGREVISION= 5 +DISTNAME= qemu-1.3.0 CATEGORIES= emulators MASTER_SITES= http://wiki.qemu.org/download/ EXTRACT_SUFX= .tar.bz2 @@ -37,8 +36,6 @@ CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} CONF_FILES= ${EGDIR}/target-x86_64.conf \ ${PKG_SYSCONFDIR}/target-x86_64.conf -CONF_FILES+= ${EGDIR}//cpus-x86_64.conf \ - ${PKG_SYSCONFDIR}/cpus-x86_64.conf EGDIR= ${PREFIX}/share/examples/qemu INSTALL_MAKE_FLAGS= egdir=${EGDIR} PKG_SYSCONFSUBDIR= qemu diff --git a/emulators/qemu/PLIST b/emulators/qemu/PLIST index 6b9a6c36654..2dda654d905 100644 --- a/emulators/qemu/PLIST +++ b/emulators/qemu/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.32 2012/09/26 10:42:48 sbd Exp $ +@comment $NetBSD: PLIST,v 1.33 2013/01/24 17:52:01 ryoon Exp $ ${PLIST.alpha}bin/qemu-alpha ${PLIST.arm}bin/qemu-arm ${PLIST.armeb}bin/qemu-armeb @@ -57,7 +57,6 @@ share/doc/qemu/Makefile.multinode-NetBSD share/doc/qemu/qemu-doc.html share/doc/qemu/qemu-tech.html share/doc/qemu/qmp-commands.txt -share/examples/qemu/cpus-x86_64.conf share/examples/qemu/target-x86_64.conf share/qemu/bamboo.dtb share/qemu/bios.bin diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo index 7d1a44f339c..5e483337246 100644 --- a/emulators/qemu/distinfo +++ b/emulators/qemu/distinfo @@ -1,19 +1,18 @@ -$NetBSD: distinfo,v 1.79 2012/09/13 14:38:19 adam Exp $ +$NetBSD: distinfo,v 1.80 2013/01/24 17:52:01 ryoon Exp $ -SHA1 (qemu-1.2.0.tar.bz2) = 4bbfb35ca2e386e9b731c09a8eb1187c0c0795a8 -RMD160 (qemu-1.2.0.tar.bz2) = f6ebeeca42e2e694f17ab83cca3652baf7e74d1c -Size (qemu-1.2.0.tar.bz2) = 9865186 bytes +SHA1 (qemu-1.3.0.tar.bz2) = ed56e8717308a56f51a6ed4c18a4335e5aacae83 +RMD160 (qemu-1.3.0.tar.bz2) = 70bbc3856604fe434d246bec8cd45beb4ee52d5b +Size (qemu-1.3.0.tar.bz2) = 10286423 bytes SHA1 (patch-configure) = 34ae5e65bc5beb45637303a02c42e9ede33564b6 -SHA1 (patch-dyngen-exec.h) = c175c9db5521da5f61239bea3f9b150188ddc448 SHA1 (patch-ef) = fd9f0ca22b1f3c3950a0ea69ba32252265d2285a SHA1 (patch-eg) = 4be8e74d134e0736fa65977d885a9dd3b12e653b SHA1 (patch-eh) = 02ada323ac9ba0acf8e4d0746bc7d58abb24b288 SHA1 (patch-en) = a2fdf12d46cb25004f5f0f6b3e187c59863e3b20 -SHA1 (patch-et) = 5b117320922385d9238c045178a75360545ea051 -SHA1 (patch-hw_ppc__newworld.c) = 043d48be9c4ec2ce2d5d303e379695d86931d242 -SHA1 (patch-hw_ppc__oldworld.c) = 92db10cb063d30226022cc0a810c7e1c7f20bfec +SHA1 (patch-et) = 019de3390becbf629f4158f6ea0326ccdb9bc28f +SHA1 (patch-hw_ppc__newworld.c) = 9f8f337e7619444ceaf80a2bccf5a9545f6bc991 +SHA1 (patch-hw_ppc__oldworld.c) = a77c01a03afb9e5d4aef4d85a7585bb77d8fdd6a SHA1 (patch-hw_xilinx__axienet.c) = 9a4c73c8dcf745d31661e0c88d683530d153feaf SHA1 (patch-ioport.c) = 3a9fc61cbf72a8cea29d1d168113b48c2f4968a9 -SHA1 (patch-memory.c) = 539f953cb115a35be109a442a190a82785518ef3 +SHA1 (patch-memory.c) = cb67615b7632ec0006507a0270d841955bcb7e8b SHA1 (patch-net_tap-bsd.c) = eb5e994a57c6f4291e34af9198ea007dbc21b191 SHA1 (patch-slirp_tcp__subr.c) = 51ae78f3f04eae9a22568afdbf6e3b2bc3d34187 diff --git a/emulators/qemu/patches/patch-dyngen-exec.h b/emulators/qemu/patches/patch-dyngen-exec.h deleted file mode 100644 index 734cc82a544..00000000000 --- a/emulators/qemu/patches/patch-dyngen-exec.h +++ /dev/null @@ -1,15 +0,0 @@ -$NetBSD: patch-dyngen-exec.h,v 1.1 2012/09/13 14:38:19 adam Exp $ - -Register variables can't be global. - ---- dyngen-exec.h.orig 2012-09-13 12:10:52.000000000 +0000 -+++ dyngen-exec.h -@@ -61,7 +61,7 @@ - #endif - - #if defined(AREG0) --register CPUArchState *env asm(AREG0); -+CPUArchState *env asm(AREG0); - #else - /* TODO: Try env = cpu_single_env. */ - extern CPUArchState *env; diff --git a/emulators/qemu/patches/patch-et b/emulators/qemu/patches/patch-et index 6f121b1d0ff..5ef1255d059 100644 --- a/emulators/qemu/patches/patch-et +++ b/emulators/qemu/patches/patch-et @@ -1,18 +1,16 @@ -$NetBSD: patch-et,v 1.5 2012/09/11 17:13:45 asau Exp $ +$NetBSD: patch-et,v 1.6 2013/01/24 17:52:01 ryoon Exp $ ---- Makefile.orig 2012-09-05 14:03:06.000000000 +0000 +--- Makefile.orig 2012-12-03 19:37:05.000000000 +0000 +++ Makefile -@@ -295,9 +295,10 @@ install-datadir: +@@ -330,8 +330,9 @@ install-datadir: install-confdir: $(INSTALL_DIR) "$(DESTDIR)$(qemu_confdir)" -install-sysconfig: install-datadir install-confdir - $(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(qemu_confdir)" -- $(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/cpus-x86_64.conf "$(DESTDIR)$(qemu_datadir)" +install-sysconfig: + $(INSTALL_DIR) "$(DESTDIR)$(egdir)" + $(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(egdir)" -+ $(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/cpus-x86_64.conf "$(DESTDIR)$(egdir)" install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig install-datadir $(INSTALL_DIR) "$(DESTDIR)$(bindir)" diff --git a/emulators/qemu/patches/patch-hw_ppc__newworld.c b/emulators/qemu/patches/patch-hw_ppc__newworld.c index 9442601dc4d..a3f6aaae2ba 100644 --- a/emulators/qemu/patches/patch-hw_ppc__newworld.c +++ b/emulators/qemu/patches/patch-hw_ppc__newworld.c @@ -1,19 +1,19 @@ -$NetBSD: patch-hw_ppc__newworld.c,v 1.3 2012/09/11 17:13:45 asau Exp $ +$NetBSD: patch-hw_ppc__newworld.c,v 1.4 2013/01/24 17:52:01 ryoon Exp $ Avoid conflicts with round_page() macro in DragonFly's <cpu/param.h> ---- hw/ppc_newworld.c.orig 2012-09-05 14:03:06.000000000 +0000 +--- hw/ppc_newworld.c.orig 2012-12-03 19:37:05.000000000 +0000 +++ hw/ppc_newworld.c -@@ -116,7 +116,7 @@ static uint64_t translate_kernel_address +@@ -115,7 +115,7 @@ static uint64_t translate_kernel_address return (addr & 0x0fffffff) + KERNEL_LOAD_ADDR; } --static target_phys_addr_t round_page(target_phys_addr_t addr) -+static target_phys_addr_t round_pageq(target_phys_addr_t addr) +-static hwaddr round_page(hwaddr addr) ++static hwaddr round_pageq(hwaddr addr) { return (addr + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK; } -@@ -234,7 +234,7 @@ static void ppc_core99_init (ram_addr_t +@@ -234,7 +234,7 @@ static void ppc_core99_init(QEMUMachineI } /* load initrd */ if (initrd_filename) { @@ -22,7 +22,7 @@ Avoid conflicts with round_page() macro in DragonFly's <cpu/param.h> initrd_size = load_image_targphys(initrd_filename, initrd_base, ram_size - initrd_base); if (initrd_size < 0) { -@@ -242,11 +242,11 @@ static void ppc_core99_init (ram_addr_t +@@ -242,11 +242,11 @@ static void ppc_core99_init(QEMUMachineI initrd_filename); exit(1); } diff --git a/emulators/qemu/patches/patch-hw_ppc__oldworld.c b/emulators/qemu/patches/patch-hw_ppc__oldworld.c index 2deffd2dd66..c598ad1149a 100644 --- a/emulators/qemu/patches/patch-hw_ppc__oldworld.c +++ b/emulators/qemu/patches/patch-hw_ppc__oldworld.c @@ -1,19 +1,19 @@ -$NetBSD: patch-hw_ppc__oldworld.c,v 1.3 2012/09/11 17:13:45 asau Exp $ +$NetBSD: patch-hw_ppc__oldworld.c,v 1.4 2013/01/24 17:52:01 ryoon Exp $ Avoid conflicts with round_page() macro in DragonFly's <cpu/param.h> ---- hw/ppc_oldworld.c.orig 2012-09-05 14:03:06.000000000 +0000 +--- hw/ppc_oldworld.c.orig 2012-12-03 19:37:05.000000000 +0000 +++ hw/ppc_oldworld.c -@@ -60,7 +60,7 @@ static uint64_t translate_kernel_address +@@ -59,7 +59,7 @@ static uint64_t translate_kernel_address return (addr & 0x0fffffff) + KERNEL_LOAD_ADDR; } --static target_phys_addr_t round_page(target_phys_addr_t addr) -+static target_phys_addr_t round_pageq(target_phys_addr_t addr) +-static hwaddr round_page(hwaddr addr) ++static hwaddr round_pageq(hwaddr addr) { return (addr + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK; } -@@ -178,7 +178,7 @@ static void ppc_heathrow_init (ram_addr_ +@@ -178,7 +178,7 @@ static void ppc_heathrow_init(QEMUMachin } /* load initrd */ if (initrd_filename) { @@ -22,7 +22,7 @@ Avoid conflicts with round_page() macro in DragonFly's <cpu/param.h> initrd_size = load_image_targphys(initrd_filename, initrd_base, ram_size - initrd_base); if (initrd_size < 0) { -@@ -186,11 +186,11 @@ static void ppc_heathrow_init (ram_addr_ +@@ -186,11 +186,11 @@ static void ppc_heathrow_init(QEMUMachin initrd_filename); exit(1); } diff --git a/emulators/qemu/patches/patch-memory.c b/emulators/qemu/patches/patch-memory.c index 07a6c05f8b5..f389002fce0 100644 --- a/emulators/qemu/patches/patch-memory.c +++ b/emulators/qemu/patches/patch-memory.c @@ -1,17 +1,17 @@ -$NetBSD: patch-memory.c,v 1.2 2012/09/11 17:13:45 asau Exp $ +$NetBSD: patch-memory.c,v 1.3 2013/01/24 17:52:01 ryoon Exp $ ---- memory.c.orig 2012-09-05 14:03:06.000000000 +0000 +--- memory.c.orig 2012-12-03 19:37:05.000000000 +0000 +++ memory.c -@@ -311,7 +311,7 @@ static void memory_region_read_accessor( - MemoryRegion *mr = opaque; - uint64_t tmp; - +@@ -313,7 +313,7 @@ static void memory_region_read_accessor( + if (mr->flush_coalesced_mmio) { + qemu_flush_coalesced_mmio_buffer(); + } - tmp = mr->ops->read(mr->opaque, addr, size); + tmp = (*mr->ops->read)(mr->opaque, addr, size); *value |= (tmp & mask) << shift; } -@@ -393,12 +393,12 @@ static void memory_region_iorange_read(I +@@ -396,12 +396,12 @@ static void memory_region_iorange_read(I *data = ((uint64_t)1 << (width * 8)) - 1; if (mrp) { |