kernel - Add some more options for pmap_qremove*()

Operating Systems / DragonFlyBSD - Matthew Dillon [apollo.backplane.com] - 24 July 2016 23:49 UTC

- 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.

d0f5991 kernel - Add some more options for pmap_qremove*()
sys/platform/pc64/x86_64/pmap.c | 76 ++++++++++++++++++++++++++------
sys/platform/vkernel64/platform/pmap.c | 43 +++++++++++++++---
sys/vm/pmap.h | 2 +
3 files changed, 103 insertions(+), 18 deletions(-)

Upstream: gitweb.dragonflybsd.org


  • Share