git: kernel - Change vm_fault_page[_quick]() semantics + vkernel fixes
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Jan 28 00:21:04 PST 2017
commit dc039ae0ab14477035d270a26fca18407f514707
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Jan 28 00:08:05 2017 -0800
kernel - Change vm_fault_page[_quick]() semantics + vkernel fixes
* vm_fault_page[_quick]() needs to be left busied for PROT_WRITE so
modifications made by the caller do not race other operations in the
kernel. Modify the API to accomodate the behavior.
* Fix procfs write race with new vm_fault_page() API.
* Fix bugs in ept_swapu32() and ept_swapu64() (vkernel + VMM)
* pmap_fault_page_quick() doesn't understand EPT page tables, have it
fail for that case too. This fixes bugs in vkernel + VMM mode.
* Also do some minor normalization of variables names in pmap.c
* vkernel/pmap - Use atomic_swap_long() to modify PTEs instead of a
simple (non-atomic) assignment.
* vkernel/pmap - Fix numerous bugs in the VMM and non-VMM code for
pmap_kenter*(), pmap_qenter*(), etc.
* vkernel/pmap - Collapse certain pmap_qremove_*() routines into the
base pmap_qremove().
Summary of changes:
sys/kern/kern_umtx.c | 5 +-
sys/platform/pc64/vmm/ept.c | 127 ++++++++++++++++++++-----------
sys/platform/pc64/vmm/vmm_utils.c | 25 +++---
sys/platform/pc64/x86_64/pmap.c | 26 +++++--
sys/platform/vkernel64/platform/copyio.c | 52 ++++++++-----
sys/platform/vkernel64/platform/pmap.c | 127 ++++++++++++++-----------------
sys/vfs/procfs/procfs_mem.c | 14 +++-
sys/vm/pmap.h | 2 +-
sys/vm/vm_extern.h | 4 +-
sys/vm/vm_fault.c | 54 +++++++++----
10 files changed, 261 insertions(+), 175 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/dc039ae0ab14477035d270a26fca18407f514707
--
DragonFly BSD source repository
More information about the Commits
mailing list