qemu-e2k/include
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
..
block block: set device_list.tqe_prev to NULL on BDS removal 2016-02-02 18:04:47 +01:00
crypto crypto: fix description of @errp parameter initialization 2016-02-01 14:11:35 +00:00
disas disas: Add print_insn to disassemble info 2015-07-09 15:20:40 +02:00
exec memory: RCU ram_list.dirty_memory[] for safe RAM hotplug 2016-02-09 15:45:26 +01:00
fpu fpu: Replace uint8 typedef with uint8_t 2016-01-22 15:09:21 +00:00
hw pc and misc cleanups and fixes, virtio optimizations 2016-02-08 11:25:31 +00:00
io io: fix description of @errp parameter initialization 2016-01-20 11:31:01 +00:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration pc and misc cleanups and fixes, virtio optimizations 2016-02-08 11:25:31 +00:00
monitor monitor/target-ppc: Define target_get_monitor_def 2015-11-12 14:53:36 +11:00
net net/filter: Fix the output information for command 'info network' 2016-02-04 14:13:11 +08:00
qapi qapi: Drop unused error argument for list and implicit struct 2016-02-08 17:29:57 +01:00
qemu -----BEGIN PGP SIGNATURE----- 2016-02-04 12:50:43 +00:00
qom qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
standard-headers linux-headers: update from kvm/next 2015-12-17 15:24:34 +01:00
sysemu block: Add blk_remove_all_bs() 2016-02-02 17:50:46 +01:00
ui virtio-gpu: bugfixes and spice support preparation 2016-02-03 12:23:48 +00:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h elf: add arm note types 2016-01-15 14:55:16 +00:00
glib-compat.h glib: add compatibility interface for g_hash_table_add() 2015-10-30 09:01:03 +01:00
qemu-common.h osdep.h: Include glib-compat.h in osdep.h rather than qemu-common.h 2016-01-11 11:39:28 +03:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00