git: kernel - VM rework part 8 - Precursor work for terminal pv_entry removal
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue May 14 17:46:40 PDT 2019
commit 67e7cb85324fc590b088e24491b7cb82318306d5
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon May 13 20:35:51 2019 -0700
kernel - VM rework part 8 - Precursor work for terminal pv_entry removal
* Adjust structures so the pmap code can iterate backing_ba's with
just the vm_object spinlock.
Add a ba.pmap back-pointer.
Move entry->start and entry->end into the ba (ba.start, ba.end).
This is replicative of the base entry->ba.start and entry->ba.end,
but local modifications are locked by individual objects to allow
pmap ops to just look at backing ba's iterated via the object.
Remove the entry->map back-pointer.
Remove the ba.entry_base back-pointer.
* ba.offset is now an absolute offset and not additive. Adjust all code
that calculates and uses ba.offset (fortunately it is all concentrated
in vm_map.c and vm_fault.c).
* Refactor ba.start/offset/end modificatons to be atomic with
the necessary spin-locks to allow the pmap code to safely iterate
the vm_map_backing list for a vm_object.
* Test VM system with full synth run.
Summary of changes:
sys/kern/imgact_elf.c | 11 +-
sys/platform/pc64/x86_64/pmap.c | 45 ++++-
sys/vfs/procfs/procfs_map.c | 8 +-
sys/vm/vm_fault.c | 56 +++---
sys/vm/vm_map.c | 383 ++++++++++++++++++++++++----------------
sys/vm/vm_map.h | 10 +-
sys/vm/vm_mmap.c | 14 +-
sys/vm/vm_object.h | 2 +-
sys/vm/vm_page.c | 18 +-
test/debug/kmapinfo.c | 22 +--
usr.bin/gcore/elfcore.c | 10 +-
11 files changed, 357 insertions(+), 222 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/67e7cb85324fc590b088e24491b7cb82318306d5
--
DragonFly BSD source repository
More information about the Commits
mailing list