https://bugzilla.novell.com/show_bug.cgi?id=254316 Summary: 32bit ia32 SUSE products do not boot on systems with more than 62GB of memory Product: openSUSE 10.2 Version: Final Platform: i686 OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Kernel AssignedTo: kernel-maintainers@forge.provo.novell.com ReportedBy: vandrove@vc.cvut.cz QAContact: qa@suse.de Hello, it is not possible to boot ia32 SUSE products (SLES10/SLED10/openSUSE10.x) on system with more than approx. 62GB of memory. It runs out of the memory in normal zone, and crashes: <5>Linux version 2.6.16.37-0.18-bigsmp (geeko@buildhost) (gcc version 4.1.2 20070115 (prerelease) (SUSE Linux)) #1 SMP Tue Feb 6 22:46:13 UTC 2007 <6>BIOS-provided physical RAM map: <4> BIOS-e820: 0000000000000000 - 000000000009f800 (usable) <4> BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) <4> BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved) <4> BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) <4> BIOS-e820: 0000000000100000 - 00000000efef0000 (usable) <4> BIOS-e820: 00000000efef0000 - 00000000efeff000 (ACPI data) <4> BIOS-e820: 00000000efeff000 - 00000000eff00000 (ACPI NVS) <4> BIOS-e820: 00000000eff00000 - 00000000f0000000 (usable) <4> BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) <4> BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) <4> BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved) <4> BIOS-e820: 0000000100000000 - 0000000fffc00000 (usable) <5>64636MB HIGHMEM available. <5>895MB LOWMEM available. <6>found SMP MP-table at 000f6c90 <4>NX (Execute Disable) protection: active <7>On node 0 totalpages: 16776192 <1>bootmem alloc of 536838176 bytes failed! <4>Badness in __alloc_bootmem at mm/bootmem.c:406 <4> [<c0392cf1>] __alloc_bootmem+0x35/0x41 <4> [<c0392e91>] free_area_init_node+0x8c/0x40a <4> [<c0390753>] page_table_range_init+0x50/0x80 <4> [<c0393221>] free_area_init+0x12/0x15 <4> [<c03888c0>] zone_sizes_init+0x43/0x48 <4> [<c0389467>] setup_arch+0xba2/0xcd7 <4> [<c03823bf>] start_kernel+0x3c/0x2d2 <0>Kernel panic - not syncing: Out of memory <4> Badness in smp_call_function at arch/i386/kernel/smp.c:595 <4> [<c0112a32>] smp_call_function+0x52/0xbe <4> [<c0122a64>] printk+0x14/0x18 <4> [<c0112ab1>] smp_send_stop+0x13/0x1c <4> [<c0122160>] panic+0x4c/0xe4 <4> [<c0392cfb>] __alloc_bootmem+0x3f/0x41 <4> [<c0392e91>] free_area_init_node+0x8c/0x40a <4> [<c0390753>] page_table_range_init+0x50/0x80 <4> [<c0393221>] free_area_init+0x12/0x15 <4> [<c03888c0>] zone_sizes_init+0x43/0x48 <4> [<c0389467>] setup_arch+0xba2/0xcd7 <4> [<c03823bf>] start_kernel+0x3c/0x2d2 Problem is same as we've filled against Ubuntu (https://launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/87278): With default initrd size problem starts occuring somewhere between 62.5 and 63GB of memory in the box. Problem is that by default 32bit kernel reports that initrd image should be loaded just below 512MB boundary. This splits 896MB lowmem block into two pieces - one from ~8MB to ~500MB (our tests show that there is something around 502MB of memory here) and one from ~512 to 896MB (384MB large). And unfortunately when there is more than 63GB of memory then pages array grows beyond 502MB, memory allocation fails, and system panics and then triplefaults as panic occured too early. Our (VMware) tests confirm that same workaround as for Ubuntu works for your products as well - changing grub's config to do: uppermem 40000 kernel --no-mem-option <kernel_image> <andargumentsasalreadypresent> instead of kernel <kernel_image> <andarguments...> as long as initrd is smaller than 30MB. Is there any reason why your kernel suggests recommended initrd location at 512MB? Using either 800MB or 40MB would work, as then there would be 700+MB contiguous block of physical memory for pages array. But with 512MB normal zone (832MB) is split into two pieces - one slightly below 500MB, and another ~300MB, neither of them sufficiently large to hold 512MB pages array :-( Thanks, Petr Vandrovec -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.