qemu-irix/include/exec
Stefan Hajnoczi 5b82b703b6 memory: RCU ram_list.dirty_memory[] for safe RAM hotplug
Although accesses to ram_list.dirty_memory[] use atomics so multiple
threads can safely dirty the bitmap, the data structure is not fully
thread-safe yet.

This patch handles the RAM hotplug case where ram_list.dirty_memory[] is
grown.  ram_list.dirty_memory[] is change from a regular bitmap to an
RCU array of pointers to fixed-size bitmap blocks.  Threads can continue
accessing bitmap blocks while the array is being extended.  See the
comments in the code for an in-depth explanation of struct
DirtyMemoryBlocks.

I have tested that live migration with virtio-blk dataplane works.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <1453728801-5398-2-git-send-email-stefanha@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-02-09 15:45:26 +01:00
..
user
address-spaces.h
cpu-all.h translate-all: ensure host page mask is always extended with 1's 2015-12-02 13:12:30 +01:00
cpu-common.h qemu_ram_block_by_name 2015-11-10 14:51:48 +01:00
cpu-defs.h
cpu_ldst.h softmmu: remove now unused functions 2015-09-11 08:16:05 -07:00
cpu_ldst_template.h softmmu: add helper function to pass through retaddr 2015-09-11 08:15:32 -07:00
cpu_ldst_useronly_template.h softmmu: add helper function to pass through retaddr 2015-09-11 08:15:32 -07:00
cputlb.h include/exec: Move cputlb exec.c defs out 2015-09-16 17:33:33 +02:00
exec-all.h exec.c: Add cpu_get_address_space() 2016-01-21 14:15:05 +00:00
gdbstub.h gdbstub: Implement gdb_do_syscallv() 2015-09-07 10:39:27 +01:00
gen-icount.h
helper-gen.h
helper-head.h
helper-proto.h
helper-tcg.h
hwaddr.h
ioport.h
log.h log: do not unnecessarily include qom/cpu.h 2016-02-03 09:19:10 +00:00
memattrs.h hw/pci: Introduce pci_requester_id() 2015-10-19 10:13:07 +02:00
memory-internal.h
memory.h memory: Add address_space_init_shareable() 2016-01-21 14:15:06 +00:00
poison.h
ram_addr.h memory: RCU ram_list.dirty_memory[] for safe RAM hotplug 2016-02-09 15:45:26 +01:00
semihost.h
softmmu-semi.h include/exec/softmmu-semi.h: Add support for 64-bit values 2015-09-07 10:39:27 +01:00
tb-hash.h