Skip site navigation (1)Skip section navigation (2)
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>