DragonFlyBSD/src 9de48easys/kern imgact_elf.c sys_process.c, sys/platform/pc64/x86_64 trap.c pmap.c

kernel - VM rework part 2 - Replace backing_object with backing_ba

* Remove the vm_object based backing_object chains and all related
  chaining code.

  This removes an enormous number of locks from the VM system and
  also removes object-to-object dependencies which requires careful
  traversal code.  A great deal of complex code has been removed
  and replaced with far simpler code.

  Ultimately the intention will be to support removal of pv_entry
  tracking from vm_pages to gain lockless shared faults, but that
  is far in the future.  It will require hanging vm_map_backing
  structures off of a list based in the object.

* Implement the vm_map_backing structure which is embedded in the
  vm_map_entry and then links to additional dynamically allocated
  vm_map_backing structures via entry->ba.backing_ba.  This structure
  contains the object and offset and essentially takes over the
  functionality that object->backing_object used to have.

  backing objects are now handled via vm_map_backing.  In this
  commit, fork operations create a fan-in tree to shared subsets
  of backings via vm_map_backing.  In this particular commit,
  these subsets are not collapsed in any way.

* Remove all the vm_map_split and collapse code.  Every last line
  is gone.  It will be reimplemented using vm_map_backing in a
  later commit.

  This means that as-of this commit both recursive forks and
  parent-to-multiple-children forks cause an accumulation of
  inefficient lists of backing objects to occur in the parent
  and children.  This will begin to get addressed in part 3.

* The code no longer releases the vm_map lock (typically shared)
  across (get_pages) I/O.  There are no longer any chaining locks to
  get in the way (hopefully).  This means that the code does not
  have to re-check as carefully as it did before.  However, some
  complexity will have to be added back in once we begin to address
  the accumulation of vm_map_backing structures.

* Paging performance improved by 30-40%
DeltaFile
+74-1,346sys/vm/vm_object.c
+368-444sys/vm/vm_map.c
+427-383sys/vm/vm_fault.c
+48-26sys/vm/vm_map.h
+23-34sys/vfs/procfs/procfs_map.c
+31-22sys/vm/vm_swapcache.c
+18-30sys/kern/imgact_elf.c
+20-28sys/vm/vm_object.h
+16-27sys/vm/vnode_pager.c
+20-7usr.bin/fstat/fstat.c
+15-2sys/platform/pc64/x86_64/trap.c
+14-2sys/kern/sys_process.c
+6-6sys/vm/vm_mmap.c
+11-0sys/vm/swap_pager.c
+5-5sys/platform/pc64/x86_64/pmap.c
+3-1sys/vm/vnode_pager.h
+0-1sys/kern/sysv_shm.c
+1-0sys/vm/swap_pager.h
+1,100-2,36418 files

UnifiedSplitRaw