git: kernel - VM rework part 7 - Initial vm_map_backing index
dillon at crater.dragonflybsd.org
Sat May 11 21:07:43 PDT 2019
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(-)
DragonFly BSD source repository
More information about the Commits