diff options
author | Paul Saab <ps@FreeBSD.org> | 2006-05-31 22:55:23 +0000 |
---|---|---|
committer | Paul Saab <ps@FreeBSD.org> | 2006-05-31 22:55:23 +0000 |
commit | 4cbb1c1aaa04ce1fdcafbd87a02097c3873e33b1 (patch) | |
tree | dbd8757b7fa47e39225412fc926f71e20a824bd8 /sys | |
parent | 72f6a0fa7ae2649befc0ff21477e0f444d8c4e16 (diff) | |
download | src-4cbb1c1aaa04ce1fdcafbd87a02097c3873e33b1.tar.gz src-4cbb1c1aaa04ce1fdcafbd87a02097c3873e33b1.zip |
Fix minidumps to include pages allocated via pmap_map on amd64.
These pages are allocated from the direct map, and were not previous
tracked. This included the vm_page_array and the early UMA bootstrap
pages.
Reviewed by: peter
Notes
Notes:
svn path=/head/; revision=159121
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_page.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 05123473f764..52b3f172c599 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -277,6 +277,15 @@ vm_page_startup(vm_offset_t vaddr) mapped = pmap_map(&vaddr, new_end, end, VM_PROT_READ | VM_PROT_WRITE); vm_page_array = (vm_page_t) mapped; +#ifdef __amd64__ + /* + * pmap_map on amd64 comes out of the direct-map, not kvm like i386, + * so the pages must be tracked for a crashdump to include this data. + * This includes the vm_page_array and the early UMA bootstrap pages. + */ + for (pa = new_end; pa < phys_avail[biggestone + 1]; pa += PAGE_SIZE) + dump_add_page(pa); +#endif phys_avail[biggestone + 1] = new_end; /* |