diff options
author | alc <alc@FreeBSD.org> | 2009-03-14 08:28:02 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2009-03-14 08:28:02 +0000 |
commit | 69680f169ccd4273c491e709b2406f6aec2ad77e (patch) | |
tree | 6ef867c8f183c3897a0c534c91d78b1b28926caf /sys/amd64 | |
parent | 72d28b3f411899b5af82a64b66e3ebb86d4f77b8 (diff) | |
download | FreeBSD-src-69680f169ccd4273c491e709b2406f6aec2ad77e.zip FreeBSD-src-69680f169ccd4273c491e709b2406f6aec2ad77e.tar.gz |
Update the pmap's resident page count when a page table page is freed in
pmap_remove_pde() and pmap_remove_pages().
MFC after: 6 weeks
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/pmap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index e367944..7760ab0 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2342,6 +2342,7 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva, mpte = pmap_lookup_pt_page(pmap, sva); if (mpte != NULL) { pmap_remove_pt_page(pmap, mpte); + pmap->pm_stats.resident_count--; KASSERT(mpte->wire_count == NPTEPG, ("pmap_remove_pde: pte page wire count error")); mpte->wire_count = 0; @@ -3851,6 +3852,7 @@ pmap_remove_pages(pmap_t pmap) mpte = pmap_lookup_pt_page(pmap, pv->pv_va); if (mpte != NULL) { pmap_remove_pt_page(pmap, mpte); + pmap->pm_stats.resident_count--; KASSERT(mpte->wire_count == NPTEPG, ("pmap_remove_pages: pte page wire count error")); mpte->wire_count = 0; |