Date: Sat, 30 May 2009 04:46:24 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r193080 - user/kmacy/releng_7_2_fcs/sys/amd64/amd64 Message-ID: <200905300446.n4U4kOt2096645@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Sat May 30 04:46:24 2009 New Revision: 193080 URL: http://svn.freebsd.org/changeset/base/193080 Log: when freeing a page that was wired decrement the global wire_count Modified: user/kmacy/releng_7_2_fcs/sys/amd64/amd64/pmap.c Modified: user/kmacy/releng_7_2_fcs/sys/amd64/amd64/pmap.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/amd64/amd64/pmap.c Sat May 30 01:33:05 2009 (r193079) +++ user/kmacy/releng_7_2_fcs/sys/amd64/amd64/pmap.c Sat May 30 04:46:24 2009 (r193080) @@ -1563,7 +1563,8 @@ _pmap_allocpte(pmap_t pmap, vm_paddr_t p flags) == NULL) { KASSERT(m->wire_count == 1, ("wire_count == %d", m->wire_count)); - m->wire_count = 0; + m->wire_count = 0; + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free(m); return (NULL); } @@ -1598,6 +1599,7 @@ _pmap_allocpte(pmap_t pmap, vm_paddr_t p KASSERT(m->wire_count == 1, ("wire_count == %d", m->wire_count)); m->wire_count = 0; + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free(m); return (NULL); } @@ -1613,6 +1615,7 @@ _pmap_allocpte(pmap_t pmap, vm_paddr_t p KASSERT(m->wire_count == 1, ("wire_count == %d", m->wire_count)); m->wire_count = 0; + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free(m); return (NULL); } @@ -2017,9 +2020,10 @@ free_pv_entry(pmap_t pmap, pv_entry_t pv /* entire chunk is free, return it */ m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); dump_drop_page(m->phys_addr); + mtx_unlock(&pv_lock); KASSERT(m->wire_count == 1, ("wire_count == %d", m->wire_count)); m->wire_count = 0; - mtx_unlock(&pv_lock); + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free(m); } @@ -4007,6 +4011,7 @@ restart: ("wire_count == %d", m->wire_count)); m->wire_count = 0; mtx_unlock(&pv_lock); + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free(m); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905300446.n4U4kOt2096645>