Skip to content
  • Fam Zheng's avatar
    729633c2
    exec: Introduce AddressSpaceDispatch.mru_section · 729633c2
    Fam Zheng authored
    
    
    Under heavy workloads the lookup will likely end up with the same
    MemoryRegionSection from last time. Using a pointer to cache the result,
    like ram_list.mru_block, significantly reduces cost of
    address_space_translate.
    
    During address space topology update, as->dispatch will be reallocated
    so the pointer is invalidated automatically.
    
    Perf reports a visible drop on the cpu usage, because phys_page_find is
    not called.  Before:
    
       2.35%  qemu-system-x86_64       [.] phys_page_find
       0.97%  qemu-system-x86_64       [.] address_space_translate_internal
       0.95%  qemu-system-x86_64       [.] address_space_translate
       0.55%  qemu-system-x86_64       [.] address_space_lookup_region
    
    After:
    
       0.97%  qemu-system-x86_64       [.] address_space_translate_internal
       0.97%  qemu-system-x86_64       [.] address_space_lookup_region
       0.84%  qemu-system-x86_64       [.] address_space_translate
    
    Signed-off-by: default avatarFam Zheng <famz@redhat.com>
    Message-Id: <1456813104-25902-8-git-send-email-famz@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    729633c2
    exec: Introduce AddressSpaceDispatch.mru_section
    Fam Zheng authored
    
    
    Under heavy workloads the lookup will likely end up with the same
    MemoryRegionSection from last time. Using a pointer to cache the result,
    like ram_list.mru_block, significantly reduces cost of
    address_space_translate.
    
    During address space topology update, as->dispatch will be reallocated
    so the pointer is invalidated automatically.
    
    Perf reports a visible drop on the cpu usage, because phys_page_find is
    not called.  Before:
    
       2.35%  qemu-system-x86_64       [.] phys_page_find
       0.97%  qemu-system-x86_64       [.] address_space_translate_internal
       0.95%  qemu-system-x86_64       [.] address_space_translate
       0.55%  qemu-system-x86_64       [.] address_space_lookup_region
    
    After:
    
       0.97%  qemu-system-x86_64       [.] address_space_translate_internal
       0.97%  qemu-system-x86_64       [.] address_space_lookup_region
       0.84%  qemu-system-x86_64       [.] address_space_translate
    
    Signed-off-by: default avatarFam Zheng <famz@redhat.com>
    Message-Id: <1456813104-25902-8-git-send-email-famz@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading