diff options
author | Gonglei <arei.gonglei@huawei.com> | 2016-02-20 10:35:20 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-02-25 16:11:29 +0100 |
commit | 3655cb9c7375a595a8051ec677c515b24d5c1fe6 (patch) | |
tree | 22578286292715ef50875e061141537aadb83f23 /memory.c | |
parent | 58eaa2174e99d9a05172d03fd2799ab8fd9e6f60 (diff) | |
download | qemu-3655cb9c7375a595a8051ec677c515b24d5c1fe6.tar.gz qemu-3655cb9c7375a595a8051ec677c515b24d5c1fe6.tar.bz2 qemu-3655cb9c7375a595a8051ec677c515b24d5c1fe6.zip |
memory: optimize qemu_get_ram_ptr and qemu_ram_ptr_length
these two functions consume too much cpu overhead to
find the RAMBlock by ram address.
After this patch, we can pass the RAMBlock pointer
to them so that they don't need to find the RAMBlock
anymore most of the time. We can get better performance
in address translation processing.
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Message-Id: <1455935721-8804-3-git-send-email-arei.gonglei@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'memory.c')
-rw-r--r-- | memory.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1570,7 +1570,7 @@ void *memory_region_get_ram_ptr(MemoryRegion *mr) mr = mr->alias; } assert(mr->ram_addr != RAM_ADDR_INVALID); - ptr = qemu_get_ram_ptr(mr->ram_addr & TARGET_PAGE_MASK); + ptr = qemu_get_ram_ptr(mr->ram_block, mr->ram_addr & TARGET_PAGE_MASK); rcu_read_unlock(); return ptr + offset; |