svn commit: r270654 - projects/amd64_xen_pv/sys/amd64/xen

Cherry G. Mathew cherry at FreeBSD.org
Tue Aug 26 10:23:00 UTC 2014


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


More information about the svn-src-projects mailing list