5b82b703b6
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> |
||
---|---|---|
.. | ||
block.c | ||
exec.c | ||
fd.c | ||
Makefile.objs | ||
migration.c | ||
postcopy-ram.c | ||
qemu-file-buf.c | ||
qemu-file-internal.h | ||
qemu-file-stdio.c | ||
qemu-file-unix.c | ||
qemu-file.c | ||
ram.c | ||
rdma.c | ||
savevm.c | ||
tcp.c | ||
unix.c | ||
vmstate.c | ||
xbzrle.c |