v2: In the optimization patch, factor out section_covers_addr() and use it. [Paolo, Peter] Check "ram_block == NULL" in patch 3. [Gonglei] Add Gonglei's rev-by in patches 1, 2, 4 and 5.
The first four patches drop ram_addr from MemoryRegion on top of Gonglei's optimization. The next patch simplifies qemu_ram_free a bit by passing the RAMBlock pointer. The last patch speeds up address_space_translate with a cache pointer inside the AddressSpaceDispatch. Fam Zheng (7): exec: Return RAMBlock pointer from allocating functions memory: Move assignment to ram_block to memory_region_init_* memory: Implement memory_region_get_ram_addr with mr->ram_block memory: Drop MemoryRegion.ram_addr exec: Pass RAMBlock pointer to qemu_ram_free exec: Factor out section_covers_addr exec: Introduce AddressSpaceDispatch.mru_section cputlb.c | 4 +- exec.c | 106 +++++++++++++++++++++++++----------------------- hw/misc/ivshmem.c | 9 ++-- include/exec/memory.h | 9 +--- include/exec/ram_addr.h | 24 +++++------ kvm-all.c | 3 +- memory.c | 56 ++++++++++++++----------- 7 files changed, 111 insertions(+), 100 deletions(-) -- 2.4.3