From owner-svn-src-projects@FreeBSD.ORG  Fri Nov  2 20:23:42 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
 by hub.freebsd.org (Postfix) with ESMTP id 3103D9F2;
 Fri,  2 Nov 2012 20:23:42 +0000 (UTC)
 (envelope-from cherry@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
 by mx1.freebsd.org (Postfix) with ESMTP id 18A0A8FC0C;
 Fri,  2 Nov 2012 20:23:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
 by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id qA2KNfKf095267;
 Fri, 2 Nov 2012 20:23:41 GMT (envelope-from cherry@svn.freebsd.org)
Received: (from cherry@localhost)
 by svn.freebsd.org (8.14.4/8.14.4/Submit) id qA2KNfeG095264;
 Fri, 2 Nov 2012 20:23:41 GMT (envelope-from cherry@svn.freebsd.org)
Message-Id: <201211022023.qA2KNfeG095264@svn.freebsd.org>
From: "Cherry G. Mathew" <cherry@FreeBSD.org>
Date: Fri, 2 Nov 2012 20:23:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r242490 - projects/amd64_xen_pv/sys/vm
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Nov 2012 20:23:42 -0000

Author: cherry
Date: Fri Nov  2 20:23:41 2012
New Revision: 242490
URL: http://svn.freebsd.org/changeset/base/242490

Log:
  Since the current pmap implementation does not use DMAP, we need to
  special case XEN related msgbuf pages, to be pmap_map()ed to relevant
  kernel virtual addresses before registering them in the dump map.
  
  Approved by: gibbs (implicit)

Modified:
  projects/amd64_xen_pv/sys/vm/vm_page.c

Modified: projects/amd64_xen_pv/sys/vm/vm_page.c
==============================================================================
--- projects/amd64_xen_pv/sys/vm/vm_page.c	Fri Nov  2 18:57:38 2012	(r242489)
+++ projects/amd64_xen_pv/sys/vm/vm_page.c	Fri Nov  2 20:23:41 2012	(r242490)
@@ -345,13 +345,17 @@ vm_page_startup(vm_offset_t vaddr)
 	    new_end + vm_page_dump_size, VM_PROT_READ | VM_PROT_WRITE);
 	bzero((void *)vm_page_dump, vm_page_dump_size);
 #endif
-#if defined(__amd64__) && !defined(XEN)
+#if defined(__amd64__)
 	/*
 	 * Request that the physical pages underlying the message buffer be
 	 * included in a crash dump.  Since the message buffer is accessed
 	 * through the direct map, they are not automatically included.
 	 */
+#if defined(XEN)
+	pa = VTOP(msgbufp->msg_ptr);
+#else /* native */
 	pa = DMAP_TO_PHYS((vm_offset_t)msgbufp->msg_ptr);
+#endif
 	last_pa = pa + round_page(msgbufsize);
 	while (pa < last_pa) {
 		dump_add_page(pa);
@@ -395,7 +399,7 @@ vm_page_startup(vm_offset_t vaddr)
 	 */
 	new_end = vm_reserv_startup(&vaddr, new_end, high_water);
 #endif
-#if defined(__amd64__) || defined(__mips__)
+#if defined(__amd64__) && !defined(XEN) || defined(__mips__) 
 	/*
 	 * pmap_map on amd64 and mips can come out of the direct-map, not kvm
 	 * like i386, so the pages must be tracked for a crashdump to include