git: kernel - Refactor vm_fault and vm_map a bit.

Matthew Dillon dillon at
Wed Nov 1 17:50:10 PDT 2017

commit 641f3b0ac8f54c6715024ca7b8dd7eb3ebbf651d
Author: Matthew Dillon <dillon at>
Date:   Wed Nov 1 17:36:14 2017 -0700

    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

Summary of changes:
 sys/vm/vm_fault.c  | 127 +++++++++++++++++++++++++++--------------
 sys/vm/vm_map.c    | 162 +++++++++++++++++++++++++++++++++++------------------
 sys/vm/vm_map.h    |   6 +-
 sys/vm/vm_mmap.c   |   9 ++-
 sys/vm/vm_object.c |  71 +++++++++++++----------
 sys/vm/vm_object.h |  13 ++++-
 6 files changed, 256 insertions(+), 132 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list