git: kernel - Improve pmap hinting, improve performance

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Oct 18 09:49:26 PDT 2017


commit bb1339f814acc2e25a2e638ad85318d0567418ba
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Oct 17 23:45:56 2017 -0700

    kernel - Improve pmap hinting, improve performance
    
    * Refactor pm_pvhint into two fields, pm_pvhint_pt and pm_pvhint_pte.
      These are the most common hits.
    
    * Consolidate the pv_entry lookup core into pv_entry_lookup() and
      implementing the double hinting.  Adjust pv_cache() to use the
      new fields.
    
    * Improve pmap_object_init_pt() performance by using the new
      RB_SCAN_NOLK() code and soft-busying the VM pages instead
      of hard-busying them.  If we have to deactivate the page, however,
      we must hard-busy the page.
    
    * Fix vm_prefault_quick() committed recently.  When soft-busying
      VM pages for pmap-entry, we have to fall-back to a hard-busy
      if the page must be moved out of PQ_CACHE.

Summary of changes:
 sys/platform/pc64/include/pmap.h |   3 +-
 sys/platform/pc64/x86_64/pmap.c  | 159 +++++++++++++++++++++++++--------------
 sys/vm/vm_fault.c                |  16 ++--
 3 files changed, 115 insertions(+), 63 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bb1339f814acc2e25a2e638ad85318d0567418ba


-- 
DragonFly BSD source repository



More information about the Commits mailing list