Date: Fri, 10 Jul 2009 23:52:56 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r195600 - user/kmacy/releng_7_2_fcs_1/sys/vm Message-ID: <200907102352.n6ANquDv035847@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907102352.n6ANquDv035847>