kernel - Change vm_fault_page[_quick]() semantics + vkernel fixes
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 28 Jan 2017 08:08:05 +0000 (00:08 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 28 Jan 2017 08:08:05 +0000 (00:08 -0800)
commitdc039ae0ab14477035d270a26fca18407f514707
treecffde38333b2c09ee8d52565756fcfea7d634069
parent53b5cfd6f25a17fb4fded4517e9571a55fe72487
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().
sys/kern/kern_umtx.c
sys/platform/pc64/vmm/ept.c
sys/platform/pc64/vmm/vmm_utils.c
sys/platform/pc64/x86_64/pmap.c
sys/platform/vkernel64/platform/copyio.c
sys/platform/vkernel64/platform/pmap.c
sys/vfs/procfs/procfs_mem.c
sys/vm/pmap.h
sys/vm/vm_extern.h
sys/vm/vm_fault.c