git: kernel - VM rework part 7 - Initial vm_map_backing index

Matthew Dillon dillon at crater.dragonflybsd.org
Sat May 11 21:07:43 PDT 2019


commit 5b329e620879c577bf125590808f5146f61a19bb
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri May 10 22:39:53 2019 -0700

    kernel - VM rework part 7 - Initial vm_map_backing index
    
    * Implement a TAILQ and hang vm_map_backing structures off
      of the related object.  This feature is still in progress
      and will eventually be used to allow pmaps to manipulate
      vm_page's without pv_entry's.
    
      At the same time, remove all sharing of vm_map_backing.
      For example, clips no longer share the vm_map_backing.  We
      can't share the structures if they are being used to
      itemize areas for pmap management.
    
      TODO - reoptimize this at some point.
    
      TODO - not yet quite deterministic enough for pmap
    	 searches (due to clips).
    
    * Refactor vm_object_reference_quick() to again allow
      operation on any vm_object whos ref_count is already
      at least 1, or which belongs to a vnode.  The ref_count
      is no longer being used for complex vm_object collapse,
      shadowing, or migration code.
    
      This allows us to avoid a number of unnecessary token
      grabs on objects during clips, shadowing, and forks.
    
    * Cleanup a few fields in vm_object.  Name TAILQ_ENTRY()
      elements blahblah_entry instead of blahblah_list.
    
    * Fix an issue with a.out binaries (that are still supported but
      nobody uses) where the object refs on the binaries were not
      being properly accounted for.

Summary of changes:
 sys/kern/imgact_aout.c           |   2 +
 sys/kern/imgact_elf.c            |   2 +-
 sys/platform/pc64/x86_64/efirt.c |   3 +
 sys/vm/device_pager.c            |   4 +-
 sys/vm/swap_pager.c              |  13 +-
 sys/vm/vm_fault.c                |   4 +
 sys/vm/vm_map.c                  | 346 ++++++++++++++++-----------------------
 sys/vm/vm_map.h                  |   3 +
 sys/vm/vm_object.c               |  19 ++-
 sys/vm/vm_object.h               |   6 +-
 sys/vm/vm_pager.c                |   2 +-
 sys/vm/vm_swapcache.c            |  21 +--
 12 files changed, 191 insertions(+), 234 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5b329e620879c577bf125590808f5146f61a19bb


-- 
DragonFly BSD source repository


More information about the Commits mailing list