Date: Wed, 23 Apr 2003 16:52:02 -0700 (PDT) From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 29569 for review Message-ID: <200304232352.h3NNq2nI095553@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=29569 Change 29569 by peter@peter_daintree on 2003/04/23 16:51:23 free the PDP and PML4 pages to stop the leak Affected files ... .. //depot/projects/hammer/sys/x86_64/x86_64/pmap.c#24 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/x86_64/pmap.c#24 (text+ko) ==== @@ -1247,15 +1247,21 @@ vm_page_lock_queues(); for (i = 0; i < NPGPTD; i++) { m = TAILQ_FIRST(&object->memq); -#ifdef PAE KASSERT(VM_PAGE_TO_PHYS(m) == (pmap->pm_pdp[i] & PG_FRAME), ("pmap_release: got wrong ptd page")); -#endif m->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_busy(m); vm_page_free_zero(m); } + /* now free pdp and pml4 */ + for (i = 0; i < 2; i++) { + m = TAILQ_FIRST(&object->memq); + m->wire_count--; + atomic_subtract_int(&cnt.v_wire_count, 1); + vm_page_busy(m); + vm_page_free(m); + } KASSERT(TAILQ_EMPTY(&object->memq), ("pmap_release: leaking page table pages")); vm_page_unlock_queues();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304232352.h3NNq2nI095553>