From: Liu Ping Fan <pingf...@linux.vnet.ibm.com> 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