From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJmBx-0004dI-OI for qemu-devel@nongnu.org; Fri, 06 Feb 2015 11:55:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YJmBs-0006rJ-KI for qemu-devel@nongnu.org; Fri, 06 Feb 2015 11:55:41 -0500 Received: from mail-wi0-x22b.google.com ([2a00:1450:400c:c05::22b]:33263) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJmBs-0006r8-DH for qemu-devel@nongnu.org; Fri, 06 Feb 2015 11:55:36 -0500 Received: by mail-wi0-f171.google.com with SMTP id l15so3928500wiw.4 for ; Fri, 06 Feb 2015 08:55:35 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 6 Feb 2015 17:55:19 +0100 Message-Id: <1423241728-21758-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH v3 0/9] RCUification of the memory API, part 2 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Mike Day , famz@redhat.com, stefanha@redhat.com 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