adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Paolo Bonzini 6886867e98 exec: fix migration with devices that use address_space_rw
Devices that use address_space_rw to write large areas to memory
(as opposed to address_space_map/unmap) were broken with respect
to migration since fe680d0 (exec: Limit translation limiting in
address_space_translate to xen, 2014-05-07).  Such devices include
IDE CD-ROMs.

The reason is that invalidate_and_set_dirty (called by address_space_rw
but not address_space_map/unmap) was only setting the dirty bit for
the first page in the translation.

To fix this, introduce cpu_physical_memory_set_dirty_range_nocode that
is the same as cpu_physical_memory_set_dirty_range except it does not
muck with the DIRTY_MEMORY_CODE bitmap.  This function can be used if
the caller invalidates translations with tb_invalidate_phys_page_range.

There is another difference between cpu_physical_memory_set_dirty_range
and cpu_physical_memory_set_dirty_flag; the former includes a call
to xen_modified_memory.  This is handled separately in
invalidate_and_set_dirty, and is not needed in other callers of
cpu_physical_memory_set_dirty_range_nocode, so leave it alone.

Just one nit: now that invalidate_and_set_dirty takes care of handling
multiple pages, there is no need for address_space_unmap to wrap it
in a loop.  In fact that loop would now be O(n^2).

Reported-by: Dave Gilbert <dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-07-22 10:38:50 +02:00
audio
backends rng-random: NULL check not needed before g_free() 2014-06-24 20:01:24 +04:00
block linux-aio: Fix laio resource leak 2014-07-15 15:34:13 +02:00
bsd-user
default-configs
disas disas/libvixl: prepend the include path of libvixl header files 2014-07-08 12:45:57 +01:00
docs AioContext: speed up aio_notify 2014-07-09 15:50:11 +02:00
dtc@bc895d6d09
fpu
fsdev
gdb-xml
hw Revert "kvmclock: Ensure time in migration never goes backward" 2014-07-18 15:28:03 +02:00
include exec: fix migration with devices that use address_space_rw 2014-07-22 10:38:50 +02:00
libcacard vscclient: Add required headers to fix build on FreeBSD 2014-06-24 20:01:24 +04:00
libdecnumber
linux-headers
linux-user target-ppc: Change default cpu for ppc64le-linux-user 2014-07-08 12:10:36 +02:00
net net: add mmsghdr struct check for L2TPV3 2014-07-01 17:42:23 +01:00
pc-bios pc-bios/s390-ccw: update binary 2014-07-08 15:08:03 +02:00
pixman@97336fad32
po
qapi block: add backing-file option to block-stream 2014-07-01 10:47:01 +02:00
qga
qobject
qom qom: object: Ignore refs/unrefs of NULL 2014-07-01 10:20:41 +02:00
roms pseries: Update SLOF firmware image to qemu-slof-20140630 2014-07-08 12:10:36 +02:00
scripts qapi script: clean up in scripts 2014-06-27 09:27:56 -04:00
slirp Increase maximum number of session of the internal TFTP server. 2014-06-24 20:01:24 +04:00
stubs
sysconfigs/target
target-alpha
target-arm target-arm: Implement vCPU reset via KVM_ARM_VCPU_INIT for 32-bit CPUs 2014-07-08 13:05:11 +01:00
target-cris
target-i386 target-i386: Allow execute from user mode when SMEP is enabled. 2014-07-15 18:43:14 +02:00
target-lm32
target-m68k
target-microblaze
target-mips mips/kvm: Disable FPU on reset with KVM 2014-07-09 18:17:04 +02:00
target-moxie
target-openrisc openrisc: fix comment 2014-06-29 18:59:06 +03:00
target-ppc spapr: Move RMA memory region registration code 2014-07-15 16:11:59 +02:00
target-s390x s390x/kvm: synchronize guest floating point registers 2014-07-14 09:15:38 +02:00
target-sh4
target-sparc
target-unicore32 target-unicore: Remove unused functions 2014-06-24 20:01:24 +04:00
target-xtensa
tcg tcg/ppc: Fix support for 64-bit PPC MacOSX hosts 2014-06-29 11:38:50 +01:00
tests qtest: new test for wdt_ib700 2014-07-18 14:57:35 +02:00
trace
ui spice: auth fixes 2014-07-11 14:50:18 +01:00
util module: Don't complain when a module is absent 2014-07-18 14:57:35 +02:00
.exrc
.gitignore qapi: ignore generated event files 2014-06-27 09:27:55 -04:00
.gitmodules
.mailmap
.travis.yml
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS MAINTAINERS: add Stefan Hajnoczi to IDE maintainers 2014-07-07 09:15:29 +02:00
Makefile PPC: e500: Actually install u-boot.e500 2014-07-08 12:10:37 +02:00
Makefile.objs
Makefile.target configure: Fix -lm test, so that tools can be compiled on hosts that require -lm 2014-07-01 10:36:28 +02:00
README
VERSION Update version for v2.1.0-rc1 release 2014-07-08 16:53:59 +01:00
aio-posix.c AioContext: speed up aio_notify 2014-07-09 15:50:11 +02:00
aio-win32.c block: drop aio functions that operate on the main AioContext 2014-07-09 15:50:11 +02:00
arch_init.c
async.c AioContext: speed up aio_notify 2014-07-09 15:50:11 +02:00
balloon.c
block-migration.c
block.c block: Assert qiov length matches request length 2014-07-14 12:03:20 +02:00
blockdev-nbd.c nbd: Shutdown socket before closing. 2014-06-30 12:50:12 +02:00
blockdev.c block: add backing-file option to block-stream 2014-07-01 10:47:01 +02:00
blockjob.c block: prefer aio_poll to qemu_aio_wait 2014-07-09 15:50:11 +02:00
bt-host.c
bt-vhci.c
configure Enforce stack protector usage 2014-07-10 17:06:29 +02:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c coroutine-win32.c: Add noinline attribute to work around gcc bug 2014-06-26 14:08:14 +01:00
cpu-exec.c
cpus.c
cputlb.c
device-hotplug.c
device_tree.c
disas.c
dma-helpers.c dma-helpers: Fix too long qiov 2014-07-14 12:03:21 +02:00
dump.c
exec.c exec: fix migration with devices that use address_space_rw 2014-07-22 10:38:50 +02:00
gdbstub.c
hmp-commands.hx
hmp.c block: add backing-file option to block-stream 2014-07-01 10:47:01 +02:00
hmp.h
iohandler.c
ioport.c
iothread.c AioContext: do not rely on aio_poll(ctx, true) result to end a loop 2014-07-14 12:03:20 +02:00
kvm-all.c
kvm-stub.c
main-loop.c block: drop aio functions that operate on the main AioContext 2014-07-09 15:50:11 +02:00
memory.c memory: MemoryRegion: Add size property 2014-07-01 10:20:41 +02:00
memory_mapping.c
migration-exec.c
migration-fd.c
migration-rdma.c
migration-tcp.c
migration-unix.c
migration.c
module-common.c
monitor.c serial: poll the serial console with G_IO_HUP 2014-06-30 15:04:34 +02:00
nbd.c nbd: Handle NBD_OPT_LIST option. 2014-06-30 12:50:17 +02:00
numa.c numa: check for busy memory backend 2014-07-06 09:13:53 +03:00
os-posix.c
os-win32.c
page_cache.c
qapi-schema.json mc146818rtc: add rtc-reset-reinjection QMP command 2014-06-29 18:59:35 +03:00
qdev-monitor.c
qdict-test-data.txt
qemu-bridge-helper.c qemu-bridge-helper: Fix fd leak in main() 2014-06-27 10:39:10 +02:00
qemu-char.c qemu-char: fix deadlock with "-monitor pty" 2014-07-14 16:13:58 +02:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi Fix nocow typos in manpage 2014-07-07 09:15:29 +02:00
qemu-file.c
qemu-img-cmds.hx qemu-img: add -l for snapshot in convert 2013-12-04 15:19:00 +01:00
qemu-img.c
qemu-img.texi Fix nocow typos in manpage 2014-07-07 09:15:29 +02:00
qemu-io-cmds.c block: prefer aio_poll to qemu_aio_wait 2014-07-09 15:50:11 +02:00
qemu-io.c
qemu-log.c
qemu-nbd.c nbd: Shutdown socket before closing. 2014-06-30 12:50:12 +02:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx net: L2TPv3 transport 2014-06-27 10:39:10 +02:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c
qemu.nsi
qemu.sasl
qmp-commands.hx block: add backing-file option to block-stream 2014-07-01 10:47:01 +02:00
qmp.c qmp: show QOM properties in device-list-properties 2014-07-07 11:10:05 +02:00
qtest.c
rules.mak build-sys: introduce install-prog macro to install&strip binaries and use it 2014-06-24 20:01:24 +04:00
savevm.c savevm: check vmsd for migratability status 2014-06-25 23:54:57 +02:00
softmmu_template.h
spice-qemu-char.c
tcg-runtime.c
tci.c
thread-pool.c
thunk.c
tpm.c
trace-events trace: add qemu_system_powerdown_request and qemu_system_shutdown_request trace events 2014-07-01 10:56:13 +02:00
translate-all.c
translate-all.h
user-exec.c
version.rc
vl.c Tracing pull request 2014-07-01 14:21:50 +01:00
vmstate.c vmstate: Add preallocation for migrating arrays (VMS_ALLOC flag) 2014-06-27 13:48:27 +02:00
xbzrle.c
xen-common-stub.c
xen-common.c
xen-hvm-stub.c
xen-hvm.c xen: build on ARM 2014-07-07 10:37:40 +00:00
xen-mapcache.c xen: build on ARM 2014-07-07 10:37:40 +00:00

README

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team