kernel - Refactor vm_fault and vm_map a bit.
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 2 Nov 2017 00:36:14 +0000 (17:36 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 2 Nov 2017 00:50:06 +0000 (17:50 -0700)
commit641f3b0ac8f54c6715024ca7b8dd7eb3ebbf651d
tree6a021b1aa17251399cc3c33f1502a490d0480c82
parentfcaa7a3ab08a96245428bb23143cb389221fe1be
kernel - Refactor vm_fault and vm_map a bit.

* Allow the virtual copy feature to be disabled via a sysctl.
  Default enabled.

* Fix a bug in the virtual copy test.  Multiple elements were
  not being retested after reacquiring the map lock.

* Change the auto-partitioning of vm_map_entry structures from
  16MB to 32MB.  Add a sysctl to allow the feature to be disabled.
  Default enabled.

* Cleanup map->timestamp bumps.  Basically we bump it in
  vm_map_lock(), and also fix a bug where it was not being
  bumped after relocking the map in the virtual copy feature.

* Fix an incorrect assertion in vm_map_split().  Refactor  tests
  in vm_map_split().  Also, acquire the chain lock for the VM
  object in the caller to vm_map_split() instead of in vm_map_split()
  itself, allowing us to include the pmap adjustment within the
  locked area.

* Make sure OBJ_ONEMAPPING is cleared for nobject in vm_map_split().

* Fix a bug in a call to vm_map_transition_wait() that
  double-locked the vm_map in the partitioning code.

* General cleanups in vm/vm_object.c
sys/vm/vm_fault.c
sys/vm/vm_map.c
sys/vm/vm_map.h
sys/vm/vm_mmap.c
sys/vm/vm_object.c
sys/vm/vm_object.h