Date: Tue, 13 Oct 2009 01:48:01 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r198011 - user/kmacy/releng_8_fcs/sys/vm Message-ID: <200910130148.n9D1m1CP091447@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Tue Oct 13 01:48:01 2009 New Revision: 198011 URL: http://svn.freebsd.org/changeset/base/198011 Log: add setup for conditionally excluding pages from core dump Modified: user/kmacy/releng_8_fcs/sys/vm/vm_contig.c user/kmacy/releng_8_fcs/sys/vm/vm_kern.c user/kmacy/releng_8_fcs/sys/vm/vm_page.c Modified: user/kmacy/releng_8_fcs/sys/vm/vm_contig.c ============================================================================== --- user/kmacy/releng_8_fcs/sys/vm/vm_contig.c Tue Oct 13 01:15:23 2009 (r198010) +++ user/kmacy/releng_8_fcs/sys/vm/vm_contig.c Tue Oct 13 01:48:01 2009 (r198011) @@ -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) { @@ -219,6 +223,10 @@ contigmapping(vm_map_t map, vm_size_t si pmap_zero_page(m); m->valid = VM_PAGE_BITS_ALL; m++; +#ifdef VM_MD_MINIDUMP + if (flags & M_NODUMP) + dump_exclude_page(VM_PAGE_TO_PHYS(m)); +#endif } VM_OBJECT_UNLOCK(object); vm_map_wire(map, addr, addr + size, Modified: user/kmacy/releng_8_fcs/sys/vm/vm_kern.c ============================================================================== --- user/kmacy/releng_8_fcs/sys/vm/vm_kern.c Tue Oct 13 01:15:23 2009 (r198010) +++ user/kmacy/releng_8_fcs/sys/vm/vm_kern.c Tue Oct 13 01:48:01 2009 (r198011) @@ -217,7 +217,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_8_fcs/sys/vm/vm_page.c ============================================================================== --- user/kmacy/releng_8_fcs/sys/vm/vm_page.c Tue Oct 13 01:15:23 2009 (r198010) +++ user/kmacy/releng_8_fcs/sys/vm/vm_page.c Tue Oct 13 01:48:01 2009 (r198011) @@ -310,6 +310,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?200910130148.n9D1m1CP091447>