diff options
author | Peter Wemm <peter@FreeBSD.org> | 2006-04-21 04:50:18 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2006-04-21 04:50:18 +0000 |
commit | 9bbf94367ceffb1b4c2215da0f8a250b738755f4 (patch) | |
tree | 98ec38040777e1647469bcbeb8a88d82937b27b4 /sys/amd64 | |
parent | e9ca6fe47ef888298b2482cba9f35daf6c1c0d8b (diff) | |
download | src-9bbf94367ceffb1b4c2215da0f8a250b738755f4.tar.gz src-9bbf94367ceffb1b4c2215da0f8a250b738755f4.zip |
Oops. Minidumps were developed on 6.x, in without the small pv entry code.
Add some strategic dump_add_page()/dump_drop_page() lines to include pv
chunks in the minidumps - these operate in the direct map region like UMA.
Notes
Notes:
svn path=/head/; revision=157912
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/pmap.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index eb7dd9c12310..91292e46710f 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1565,6 +1565,7 @@ free_pv_entry(pmap_t pmap, pv_entry_t pv) /* entire chunk is free, return it */ TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + dump_drop_page(m->phys_addr); vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); @@ -1645,6 +1646,7 @@ get_pv_entry(pmap_t pmap, int try) PV_STAT(pc_chunk_count++); PV_STAT(pc_chunk_allocs++); colour++; + dump_add_page(m->phys_addr); pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; pc->pc_map[0] = PC_FREE0 & ~1ul; /* preallocated bit 0 */ @@ -2794,6 +2796,7 @@ pmap_remove_pages(pmap_t pmap) PV_STAT(pc_chunk_frees++); TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + dump_drop_page(m->phys_addr); vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); |