svn commit: r193080 - user/kmacy/releng_7_2_fcs/sys/amd64/amd64
Kip Macy
kmacy at FreeBSD.org
Sat May 30 04:46:24 UTC 2009
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);
}
}
More information about the svn-src-user
mailing list