WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] pv-grub heap exhausted?

> From: Samuel Thibault [mailto:samuel.thibault@xxxxxxxxxxxx]
> Could you send us the log?

Oops sorry, it was in.  Could you try the patch below?

Samuel


minios: Fix 18874 memory clipping

Fix 18874's memory clipping: there are three page-sized holes between
direct mapping, demand mapping, heap pages and the end of memory.

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

diff -r f8187a343ad2 extras/mini-os/arch/x86/mm.c
--- a/extras/mini-os/arch/x86/mm.c      Fri Feb 20 17:02:36 2009 +0000
+++ b/extras/mini-os/arch/x86/mm.c      Sat Mar 07 02:33:30 2009 +0100
@@ -599,7 +599,7 @@
 void arch_init_mm(unsigned long* start_pfn_p, unsigned long* max_pfn_p)
 {
 
-    unsigned long start_pfn, max_pfn, virt_pfns;
+    unsigned long start_pfn, max_pfn;
 
     printk("  _text:        %p\n", &_text);
     printk("  _etext:       %p\n", &_etext);
@@ -614,9 +614,13 @@
     max_pfn = start_info.nr_pages;
 
     /* We need room for demand mapping and heap, clip available memory */
-    virt_pfns = DEMAND_MAP_PAGES + HEAP_PAGES;
-    if (max_pfn + virt_pfns + 1 < max_pfn)
-        max_pfn = -(virt_pfns + 1);
+#if defined(__i386__)
+    {
+        unsigned long virt_pfns = 1 + DEMAND_MAP_PAGES + 1 + HEAP_PAGES;
+        if (max_pfn + virt_pfns >= 0x100000)
+            max_pfn = 0x100000 - virt_pfns - 1;
+    }
+#endif
 
     printk("  start_pfn:    %lx\n", start_pfn);
     printk("  max_pfn:      %lx\n", max_pfn);

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>