On 22/02/2016 09:34, Gonglei wrote: > Perf top tells me qemu_get_ram_ptr consume some cpu cycles. > > Before this optimization: > 1.26% qemu-kvm [.] qemu_get_ram_ptr > 0.89% qemu-kvm [.] qemu_get_ram_block > > Applied the patch set: > 0.87% qemu-kvm [.] qemu_get_ram_ptr > > And Paolo suggested that we can get rid of qemu_get_ram_ptr > by storing the RAMBlock pointer into the memory region, > instead of the ram_addr_t value. And after appling this change, > I got much better performance indeed. > > BTW, PATCH 3 is an occasional find. > > v2: > - using 'struct RAMBlock *' instead of 'void *' in patch 1 [Fam] > - drop superfluous comments in patch 1 [Fam] > > Gonglei (3): > exec: store RAMBlock pointer into memory region > memory: optimize qemu_get_ram_ptr and qemu_ram_ptr_length > memory: Remove the superfluous code > > exec.c | 48 ++++++++++++++++++++++++++++++------------------ > include/exec/memory.h | 8 ++++---- > memory.c | 3 ++- > 3 files changed, 36 insertions(+), 23 deletions(-) >
Thanks Lei and Fam, patches queued. Paolo
