[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] pv_grub and >1023M RAM == death
Hello, Christopher S. Aker, le Wed 03 Dec 2008 14:05:55 -0500, a écrit : > pv_grub x86, when booted with more than 1023MB of RAM, will produce the > following output: Ah, mini-os doesn't have any protection against that. I don't have a machine here to test, could you check the patch below? Samuel Clip memory not usable by Mini-OS (above 1GB) signed-off-by: samuel.thibault@xxxxxxxxxxxx diff -r 4c67985c552e extras/mini-os/arch/x86/mm.c --- a/extras/mini-os/arch/x86/mm.c Wed Nov 19 13:17:31 2008 +0000 +++ b/extras/mini-os/arch/x86/mm.c Fri Dec 05 00:19:19 2008 +0100 @@ -420,7 +420,9 @@ #define DEMAND_MAP_PAGES ((2ULL << 30) / PAGE_SIZE) #endif -#ifdef HAVE_LIBC +#ifndef HAVE_LIBC +#define HEAP_PAGES 0 +#else unsigned long heap, brk, heap_mapped, heap_end; #ifdef __x86_64__ #define HEAP_PAGES ((128ULL << 30) / PAGE_SIZE) @@ -591,7 +593,7 @@ void arch_init_mm(unsigned long* start_pfn_p, unsigned long* max_pfn_p) { - unsigned long start_pfn, max_pfn; + unsigned long start_pfn, max_pfn, virt_pfns; printk(" _text: %p\n", &_text); printk(" _etext: %p\n", &_etext); @@ -604,7 +606,12 @@ start_pfn = PFN_UP(to_phys(start_info.pt_base)) + start_info.nr_pt_frames + 3; 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); + 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |