From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35110) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UbjKC-0002Bb-45 for qemu-devel@nongnu.org; Sun, 12 May 2013 23:21:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UbjKB-0003Jb-3Q for qemu-devel@nongnu.org; Sun, 12 May 2013 23:21:20 -0400 Received: from mail-ob0-x232.google.com ([2607:f8b0:4003:c01::232]:35410) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UbjKA-0003JX-UW for qemu-devel@nongnu.org; Sun, 12 May 2013 23:21:19 -0400 Received: by mail-ob0-f178.google.com with SMTP id v19so2332307obq.37 for ; Sun, 12 May 2013 20:21:18 -0700 (PDT) From: Liu Ping Fan Date: Mon, 13 May 2013 11:21:02 +0800 Message-Id: <1368415264-10800-1-git-send-email-qemulist@gmail.com> Subject: [Qemu-devel] [RFC PATCH 0/2] make memory listener prepared for rcu style List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Anthony Liguori , "Michael S. Tsirkin" , Jan Kiszka , Stefan Hajnoczi , Paolo Bonzini From: Liu Ping Fan This is an old idea, I post last year, http://permalink.gmane.org/gmane.comp.emulators.qemu/164845 I rebase it, after Paolo's [PATCH 00/40] Memory-related changes sneak peek for 1.6 (Paolo's tree git://github.com/bonzini/qemu.git, branch iommu.) Open issue--the dependency of MemoryListener After diving into code and some discussion with Stefanha, I think AddressSpace Listener has no direct dependency of kvm's 1st, c_p_m_rw is the link combinded the the two listeners, but guest raise the rw emulated device's exception, not kvm which means the real dependency lies between listener and guest. 2nd, orign code has violated the dependency, mem_begin() destroy the radix-tree, which means regions disappear, but exist in kvm memslot Liu Ping Fan (2): mem: make phys_section and phys_map_nodes prepared for RCU mem: prepare address_space listener rcu style exec.c | 225 ++++++++++++++++++++++------------------ include/exec/memory-internal.h | 11 ++- include/exec/memory.h | 2 + memory.c | 2 + 4 files changed, 139 insertions(+), 101 deletions(-) -- 1.7.4.4