Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Aug 2014 10:22:59 +0000 (UTC)
From:      "Cherry G. Mathew" <cherry@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r270654 - projects/amd64_xen_pv/sys/amd64/xen
Message-ID:  <201408261022.s7QAMx7X002888@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cherry
Date: Tue Aug 26 10:22:59 2014
New Revision: 270654
URL: http://svnweb.freebsd.org/changeset/base/270654

Log:
  Add all pv ram to the crash dump pages, instead of skipping "holes".
  This also fixes fragmentation related breakage during bootup, which
  fails during the RAM "device" attach.
  
  Approved by:	gibbs (implicit)

Modified:
  projects/amd64_xen_pv/sys/amd64/xen/machdep.c
  projects/amd64_xen_pv/sys/amd64/xen/pmap.c

Modified: projects/amd64_xen_pv/sys/amd64/xen/machdep.c
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/xen/machdep.c	Tue Aug 26 09:40:14 2014	(r270653)
+++ projects/amd64_xen_pv/sys/amd64/xen/machdep.c	Tue Aug 26 10:22:59 2014	(r270654)
@@ -594,11 +594,13 @@ initxen(struct start_info *si)
 	DPCPU_ID_SET(0, vcpu_info, &HYPERVISOR_shared_info->vcpu_info[0]);
 
 	/* Register the rest of free physical memory with phys_avail[] */
-	/* dump_avail[] starts at index 1 */
 	phys_avail[pa_index++] = physfree; 
-	dump_avail[pa_index] = physfree;
 	phys_avail[pa_index++] = ptoa(physmem);
-	dump_avail[pa_index] = ptoa(physmem);
+
+	/* We dump all of our given RAM */
+	/* XXX: revise this for dom0 */
+	dump_avail[1] = 0;
+	dump_avail[2] = ptoa(physmem);
 
 	PCPU_SET(prvspace, pc);
 	PCPU_SET(curthread, &thread0);

Modified: projects/amd64_xen_pv/sys/amd64/xen/pmap.c
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/xen/pmap.c	Tue Aug 26 09:40:14 2014	(r270653)
+++ projects/amd64_xen_pv/sys/amd64/xen/pmap.c	Tue Aug 26 10:22:59 2014	(r270654)
@@ -1157,7 +1157,7 @@ retry:
 			     xen_pt_frames);
 
 	bzero((void *)PTOV(ptoa(xen_pt)), ptoa(xen_pt_frames));
-#if 0
+#if 1
 	/* 
 	 * Unmap from kernel VA space, since we're going to put them
 	 * on the free list via phys_avail
@@ -1173,8 +1173,8 @@ retry:
 	 * Record the pages as available to the VM via phys_avail[] 
 	 */
 
-	dump_avail[pa_index + 1] = phys_avail[pa_index] = ptoa(xen_pt);
-	dump_avail[pa_index + 2] = phys_avail[pa_index + 1] = phys_avail[pa_index] +
+	phys_avail[pa_index] = ptoa(xen_pt);
+	phys_avail[pa_index + 1] = phys_avail[pa_index] +
 		ptoa(xen_pt_frames);
 	pa_index += 2;
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408261022.s7QAMx7X002888>