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