Part 1 is patches 1-7, part 2 is patches 8-15. Part 1 changes requested by reviewers were minimal, but no one really provided a Reviewed-by so I'm reposting. The idea is to send a pull request for part 1 soon.
These two parts are enough of a base for Stefan's work on thread-safe migration bitmaps. Part 3 (in the works) will separate removal and reclamation of device data. Part 4 (already done) will switch KVM MMIO and PIO to unlocked lookup and convert a single device to unlocked access. Changes in part 1: - patch 1: left aside for later (Peter) - patch 2 (now patch 1): two small doc fixes (Fam) - patch 3 (now patch 2): do not do both short and long tests (Fam) do not drop rcu_register_thread in rcu_init (Fam) TCG folks, please review patches 8 and 9. Note that they are not yet ready for multiple TCG threads. Paolo Jan Kiszka (1): memory: remove assertion on memory_region_destroy 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 (10): rcu: add rcu library rcu: add rcutorture rcu: allow nesting of rcu_read_lock/rcu_read_unlock rcu: add call_rcu memory: protect current_map by RCU memory: avoid ref/unref in memory_region_find exec: introduce cpu_reload_memory_map exec: make iotlb RCU-friendly exec: RCUify AddressSpaceDispatch exec: protect mru_block with RCU arch_init.c | 66 ++++--- cpu-exec.c | 21 ++ cpus.c | 2 +- cputlb.c | 13 +- docs/rcu.txt | 387 ++++++++++++++++++++++++++++++++++++ exec.c | 304 +++++++++++++++++++---------- hw/9pfs/virtio-9p-synth.c | 3 +- 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/exec/memory.h | 5 + include/qemu/atomic.h | 61 ++++++ include/qemu/queue.h | 24 +-- include/qemu/rcu.h | 147 ++++++++++++++ include/qemu/rcu_queue.h | 134 +++++++++++++ include/qemu/thread.h | 3 - include/qom/cpu.h | 1 + memory.c | 60 +++--- scripts/dump-guest-memory.py | 8 +- softmmu_template.h | 4 +- tests/Makefile | 10 +- tests/rcutorture.c | 452 +++++++++++++++++++++++++++++++++++++++++++ tests/test-rcu-list.c | 326 +++++++++++++++++++++++++++++++ util/Makefile.objs | 1 + util/rcu.c | 291 ++++++++++++++++++++++++++++ 28 files changed, 2148 insertions(+), 200 deletions(-) create mode 100644 docs/rcu.txt create mode 100644 include/qemu/rcu.h create mode 100644 include/qemu/rcu_queue.h create mode 100644 tests/rcutorture.c create mode 100644 tests/test-rcu-list.c create mode 100644 util/rcu.c -- 1.8.3.1