kernel - Add some more options for pmap_qremove*()
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 Jul 2016 04:49:57 +0000 (21:49 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 Jul 2016 04:49:57 +0000 (21:49 -0700)
commitd0f59917b31c9ce70fc3a52aa387163871f88f4b
tree3cc41681b5e677c1c98e1d75aaed8ab666f4e904
parentae18e11d61f5cb1b3d4f1ecc8c70eff9bdd31df0
kernel - Add some more options for pmap_qremove*()

* Add pmap_qremove_quick() and pmap_qremove_noinval(), allowing pmap
  entries to be removed without invalidation under carefully managed
  circumstances by other subsystems.

* Redo the virtual kernel a little to work the same as the real kernel
  when entering new pmap entries.  We cannot assume that no invalidation
  is needed when the prior contents of the pte is 0, because there are
  several ways it could have become 0 without a prior invalidation.

  Also use an atomic op to clear the entry.
sys/platform/pc64/x86_64/pmap.c
sys/platform/vkernel64/platform/pmap.c
sys/vm/pmap.h