Part 2 converts ram_list to RCU. It is enough of a base for Stefan's work on thread-safe migration bitmaps.
Part 3 (not yet posted because it won't be in 2.3 anyway) will separate removal and reclamation of device data. Part 4 will switch KVM MMIO and PIO to unlocked lookup and convert a single device to unlocked access. Paolo v1->v2: add comment in cpu_reload_memory_map [Fam] do not remove ram_list mutex [Fam] some improvements to test-rcu-list v2->v3: use explicit memory barriers when accessing ram_list.version [Fam] clean up some comments [Fam] add more comments about required locks Mike Day (4): rcu: introduce RCU-enabled QLIST cosmetic changes preparing for the following patches exec: convert ram_list to QLIST Convert ram_list to RCU Paolo Bonzini (5): exec: introduce cpu_reload_memory_map exec: make iotlb RCU-friendly exec: RCUify AddressSpaceDispatch rcu: prod call_rcu thread when calling synchronize_rcu exec: protect mru_block with RCU arch_init.c | 73 +++++++---- cpu-exec.c | 33 +++++ cpus.c | 2 +- cputlb.c | 13 +- exec.c | 294 +++++++++++++++++++++++++++++------------ hw/9pfs/virtio-9p-synth.c | 2 +- hw/i386/intel_iommu.c | 3 + hw/pci-host/apb.c | 1 + hw/ppc/spapr_iommu.c | 1 + include/exec/cpu-all.h | 13 +- include/exec/cputlb.h | 2 +- include/exec/exec-all.h | 5 +- include/qemu/queue.h | 11 -- include/qemu/rcu_queue.h | 134 +++++++++++++++++++ include/qom/cpu.h | 1 + scripts/dump-guest-memory.py | 8 +- softmmu_template.h | 4 +- tests/Makefile | 5 +- tests/test-rcu-list.c | 306 +++++++++++++++++++++++++++++++++++++++++++ util/rcu.c | 8 +- 20 files changed, 775 insertions(+), 144 deletions(-) create mode 100644 include/qemu/rcu_queue.h create mode 100644 tests/test-rcu-list.c -- 1.8.3.1