svn commit: r195600 - user/kmacy/releng_7_2_fcs_1/sys/vm
Kip Macy
kmacy at FreeBSD.org
Fri Jul 10 23:52:56 UTC 2009
Author: kmacy
Date: Fri Jul 10 23:52:56 2009
New Revision: 195600
URL: http://svn.freebsd.org/changeset/base/195600
Log:
conditionally exclude mapped pages from core dumps
Modified:
user/kmacy/releng_7_2_fcs_1/sys/vm/vm_contig.c
user/kmacy/releng_7_2_fcs_1/sys/vm/vm_kern.c
user/kmacy/releng_7_2_fcs_1/sys/vm/vm_page.c
Modified: user/kmacy/releng_7_2_fcs_1/sys/vm/vm_contig.c
==============================================================================
--- user/kmacy/releng_7_2_fcs_1/sys/vm/vm_contig.c Fri Jul 10 23:51:56 2009 (r195599)
+++ user/kmacy/releng_7_2_fcs_1/sys/vm/vm_contig.c Fri Jul 10 23:52:56 2009 (r195600)
@@ -87,6 +87,10 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_phys.h>
#include <vm/vm_extern.h>
+#ifdef VM_MD_MINIDUMP
+#include <machine/md_var.h>
+#endif
+
static int
vm_contig_launder_page(vm_page_t m, vm_page_t *next)
{
@@ -229,6 +233,10 @@ contigmapping(vm_page_t m, vm_pindex_t n
if ((flags & M_ZERO) && !(m[i].flags & PG_ZERO))
pmap_zero_page(&m[i]);
tmp_addr += PAGE_SIZE;
+#ifdef VM_MD_MINIDUMP
+ if (flags & M_NODUMP)
+ dump_exclude_page(VM_PAGE_TO_PHYS(&m[i]));
+#endif
}
VM_OBJECT_UNLOCK(object);
vm_map_wire(map, addr, addr + (npages << PAGE_SHIFT),
Modified: user/kmacy/releng_7_2_fcs_1/sys/vm/vm_kern.c
==============================================================================
--- user/kmacy/releng_7_2_fcs_1/sys/vm/vm_kern.c Fri Jul 10 23:51:56 2009 (r195599)
+++ user/kmacy/releng_7_2_fcs_1/sys/vm/vm_kern.c Fri Jul 10 23:52:56 2009 (r195600)
@@ -216,7 +216,7 @@ kmem_free(map, addr, size)
vm_offset_t temp = start;
for (; temp < end; temp += PAGE_SIZE)
- dump_add_page(pmap_kextract(temp));
+ dump_unexclude_page(pmap_kextract(temp));
#endif
(void) vm_map_remove(map, start, end);
}
@@ -376,7 +376,7 @@ retry:
pmap_zero_page(m);
#ifdef VM_MD_MINIDUMP
if (flags & M_NODUMP)
- dump_drop_page(VM_PAGE_TO_PHYS(m));
+ dump_exclude_page(VM_PAGE_TO_PHYS(m));
#endif
m->valid = VM_PAGE_BITS_ALL;
KASSERT((m->flags & PG_UNMANAGED) != 0,
Modified: user/kmacy/releng_7_2_fcs_1/sys/vm/vm_page.c
==============================================================================
--- user/kmacy/releng_7_2_fcs_1/sys/vm/vm_page.c Fri Jul 10 23:51:56 2009 (r195599)
+++ user/kmacy/releng_7_2_fcs_1/sys/vm/vm_page.c Fri Jul 10 23:52:56 2009 (r195600)
@@ -301,6 +301,10 @@ vm_page_startup(vm_offset_t vaddr)
vm_page_dump = (void *)(uintptr_t)pmap_map(&vaddr, new_end,
new_end + vm_page_dump_size, VM_PROT_READ | VM_PROT_WRITE);
bzero((void *)vm_page_dump, vm_page_dump_size);
+ new_end -= vm_page_dump_size;
+ vm_page_dump_exclude = (void *)(uintptr_t)pmap_map(&vaddr, new_end,
+ new_end + vm_page_dump_size, VM_PROT_READ | VM_PROT_WRITE);
+ bzero((void *)vm_page_dump, vm_page_dump_size);
#endif
/*
* Compute the number of pages of memory that will be available for
More information about the svn-src-user
mailing list