kernel - Add some more options for pmap_qremove*()
commitf093560f0bb0c0e1042f5ea41e76c6e41fe508ba
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 Jul 2016 04:49:57 +0000 (24 21:49 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 Jul 2016 21:34:17 +0000 (25 14:34 -0700)
tree2d9df3070e3f36a7f72d3c4733b16339ad96b0af
parente74c9440c06bbad6130ad570539fd6c87faf66c8
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