From: Borislav Petkov on
Hi,

this is something we're getting during testing on one of our boxes here,
a dual socket Magny-Cours machine. It is oopsing on the addr variable in
__alloc_memory_core_early() after converting it to a virtual address in
order to clear the mem region at it. I've removed the "#if 0.. #endif"
around the printk which dumps the ranges in the early node map for more
info.

It's latest -git, 32bit build, config is attached.

Here's the whole console output:

[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.35-rc4+ (root(a)hernando) (gcc version 4.1.2 20070115 (SUSE Linux)) #2 SMP Fri Jul 9 16:20:13 CEST 2010
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 0000000000088c00 (usable)
[ 0.000000] BIOS-e820: 0000000000088c00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000cc000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000c7e60000 (usable)
[ 0.000000] BIOS-e820: 00000000c7e60000 - 00000000c7e6b000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000c7e6b000 - 00000000c7e6d000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000c7e6d000 - 00000000c7eff000 (reserved)
[ 0.000000] BIOS-e820: 00000000c7f00000 - 00000000c8000000 (reserved)
[ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
[ 0.000000] BIOS-e820: 0000000100000000 - 0000000238000000 (usable)
[ 0.000000] bootconsole [earlyser0] enabled
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] DMI present.
[ 0.000000] Phoenix BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] last_pfn = 0x238000 max_arch_pfn = 0x1000000
[ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[ 0.000000] Scanning 0 areas for low memory corruption
[ 0.000000] modified physical RAM map:
[ 0.000000] modified: 0000000000000000 - 0000000000010000 (reserved)
[ 0.000000] modified: 0000000000010000 - 0000000000088c00 (usable)
[ 0.000000] modified: 0000000000088c00 - 00000000000a0000 (reserved)
[ 0.000000] modified: 00000000000cc000 - 0000000000100000 (reserved)
[ 0.000000] modified: 0000000000100000 - 00000000c7e60000 (usable)
[ 0.000000] modified: 00000000c7e60000 - 00000000c7e6b000 (ACPI data)
[ 0.000000] modified: 00000000c7e6b000 - 00000000c7e6d000 (ACPI NVS)
[ 0.000000] modified: 00000000c7e6d000 - 00000000c7eff000 (reserved)
[ 0.000000] modified: 00000000c7f00000 - 00000000c8000000 (reserved)
[ 0.000000] modified: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] modified: 00000000fec00000 - 00000000fec10000 (reserved)
[ 0.000000] modified: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] modified: 00000000fff00000 - 0000000100000000 (reserved)
[ 0.000000] modified: 0000000100000000 - 0000000238000000 (usable)
[ 0.000000] found SMP MP-table at [c00f72a0] f72a0
[ 0.000000] init_memory_mapping: 0000000000000000-00000000375fe000
[ 0.000000] ACPI: RSDP 000f7220 00024 (v02 PTLTD )
[ 0.000000] ACPI: XSDT c7e60915 0009C (v01 PTLTD ? XSDT 06040000 LTP 00000000)
[ 0.000000] ACPI: FACP c7e66d6a 000F4 (v03 AMD Dinar 06040000 AMD 000F4240)
[ 0.000000] ACPI: DSDT c7e609b1 063B9 (v02 AMD SB700 06040000 MSFT 03000000)
[ 0.000000] ACPI: FACS c7e6cfc0 00040
[ 0.000000] ACPI: TCPA c7e66ed2 00032 (v02 AMD 06040000 PTEC 00000000)
[ 0.000000] ACPI: IVRS c7e66f04 000A8 (v01 AMD RD890S 06040000 AMD 00000000)
[ 0.000000] ACPI: EINJ c7e66fac 001B0 (v01 PTL WHEAPTL 06040000 PTL 00000001)
[ 0.000000] ACPI: HEST c7e6715c 002AC (v01 PTL WHEAPTL 06040000 PTL 00000001)
[ 0.000000] ACPI: BERT c7e67408 00030 (v01 PTL WHEAPTL 06040000 PTL 00000001)
[ 0.000000] ACPI: SSDT c7e67438 000E1 (v01 wheaos wheaosc 06040000 INTL 20050624)
[ 0.000000] ACPI: ERST c7e67519 00270 (v01 PTL WHEAPTL 06040000 PTL 00000001)
[ 0.000000] ACPI: SLIT c7e67789 0003C (v01 AMD F10 06040000 AMD 00000001)
[ 0.000000] ACPI: SRAT c7e677c5 002A0 (v02 AMD F10 06040000 AMD 00000001)
[ 0.000000] ACPI: SSDT c7e67a65 03294 (v01 AMD POWERNOW 06040000 AMD 00000001)
[ 0.000000] ACPI: SSDT c7e6acf9 000F5 (v01 AMD-K8 AMD-ACPI 06040000 AMD 00000001)
[ 0.000000] ACPI: APIC c7e6adee 0019E (v01 PTLTD ? APIC 06040000 LTP 00000000)
[ 0.000000] ACPI: MCFG c7e6af8c 0003C (v01 PTLTD MCFG 06040000 LTP 00000000)
[ 0.000000] ACPI: HPET c7e6afc8 00038 (v01 PTLTD HPETTBL 06040000 LTP 00000001)
[ 0.000000] Reserving total of 4c00 pages for numa KVA remap
[ 0.000000] kva_start_pfn ~ 32800 max_low_pfn ~ 375fe
[ 0.000000] max_pfn = 238000
[ 0.000000] 8202MB HIGHMEM available.
[ 0.000000] 885MB LOWMEM available.
[ 0.000000] mapped low ram: 0 - 375fe000
[ 0.000000] low ram: 0 - 375fe000
[ 0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 1000 1000 => 34e7000
[ 0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 200 40 => 34c9d80
[ 0.000000] alloc (nid=0 100000 - 7ee00000) (1000000 - ffffffffffffffff) 180 40 => 34e6140
[ 0.000000] alloc (nid=1 80000000 - c7e60000) (1000000 - ffffffffffffffff) 240 40 => 80000000
[ 0.000000] BUG: unable to handle kernel paging request at 40000000
[ 0.000000] IP: [<c2c8cff1>] __alloc_memory_core_early+0x147/0x1d6
[ 0.000000] *pdpt = 0000000000000000 *pde = f000ff53f000ff00
[ 0.000000] Oops: 0002 [#1] SMP
[ 0.000000] last sysfs file:
[ 0.000000] Modules linked in:
[ 0.000000]
[ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.35-rc4+ #2 Dinar/Dinar
[ 0.000000] EIP: 0060:[<c2c8cff1>] EFLAGS: 00010046 CPU: 0
[ 0.000000] EIP is at __alloc_memory_core_early+0x147/0x1d6
[ 0.000000] EAX: 00000000 EBX: 80000000 ECX: 00000240 EDX: 00000000
[ 0.000000] ESI: 00000000 EDI: 40000000 EBP: c2837e7c ESP: c2837e10
[ 0.000000] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[ 0.000000] Process swapper (pid: 0, ti=c2836000 task=c2845840 task.ti=c2836000)
[ 0.000000] Stack:
[ 0.000000] c272e3ce 00000001 80000000 00000000 c7e60000 00000000 01000000 00000000
[ 0.000000] <0> ffffffff ffffffff 00000240 00000000 00000040 00000000 80000000 00000000
[ 0.000000] <0> 00000240 00000000 00000001 40000000 80000000 00000000 c7e60000 00000000
[ 0.000000] Call Trace:
[ 0.000000] [<c2c8b4f8>] ? __alloc_bootmem_node+0x216/0x22f
[ 0.000000] [<c2c90c9b>] ? sparse_early_usemaps_alloc_node+0x5a/0x10b
[ 0.000000] [<c2c9149e>] ? sparse_init+0x1dc/0x499
[ 0.000000] [<c2c79118>] ? paging_init+0x168/0x1df
[ 0.000000] [<c2c780ff>] ? native_pagetable_setup_start+0xef/0x1bb
[ 0.000000] [<c2c55b0b>] ? setup_arch+0x1826/0x1a38
[ 0.000000] [<c2c822be>] ? __reserve_early+0x17e/0x19a
[ 0.000000] [<c112cea4>] ? init_cgroup_css+0xd5/0x110
[ 0.000000] [<c2c4c50e>] ? start_kernel+0x1d1/0xc42
[ 0.000000] [<c2c4b1d9>] ? i386_start_kernel+0x1d9/0x1ef
[ 0.000000] Code: 15 c4 52 ec c2 00 83 05 08 7e ec c2 01 83 15 0c 7e ec c2 00 fc 89 4d e0 8b 4d d4 83 05 c8 52 ec c2 01 83 15 cc 52 ec c2 00 31 c0 <f3> aa 89 d8 83 05 d0 52 ec c2 01 83 15 d4 52 ec c2 00 83 c4 40
[ 0.000000] EIP: [<c2c8cff1>] __alloc_memory_core_early+0x147/0x1d6 SS:ESP 0068:c2837e10
[ 0.000000] CR2: 0000000040000000
[ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[ 0.000000] Pid: 0, comm: swapper Tainted: G D 2.6.35-rc4+ #2
[ 0.000000] Call Trace:
[ 0.000000] [<c109e39b>] panic+0xf0/0x2a4
[ 0.000000] [<c10a7182>] do_exit+0x1c8/0x168b
[ 0.000000] [<c109ebce>] ? spin_unlock_irqrestore+0x1b/0x2b
[ 0.000000] [<c10a232d>] ? kmsg_dump+0x380/0x396
[ 0.000000] [<c224ee14>] oops_end+0x1fb/0x211
[ 0.000000] [<c105d1f1>] no_context+0x48a/0x4a2
[ 0.000000] [<c109f655>] ? release_console_sem+0x543/0x56e
[ 0.000000] [<c105d6c4>] __bad_area_nosemaphore+0x2b7/0x2cd
[ 0.000000] [<c105d7c2>] bad_area_nosemaphore+0x20/0x31
[ 0.000000] [<c22540d1>] do_page_fault+0x60d/0xe1b
[ 0.000000] [<c2253ac4>] ? do_page_fault+0x0/0xe1b
[ 0.000000] [<c224d38b>] error_code+0x6b/0x70
[ 0.000000] [<c2253ac4>] ? do_page_fault+0x0/0xe1b
[ 0.000000] [<c2c8cff1>] ? __alloc_memory_core_early+0x147/0x1d6
[ 0.000000] [<c2c8b4f8>] __alloc_bootmem_node+0x216/0x22f
[ 0.000000] [<c2c90c9b>] sparse_early_usemaps_alloc_node+0x5a/0x10b
[ 0.000000] [<c2c9149e>] sparse_init+0x1dc/0x499
[ 0.000000] [<c2c79118>] paging_init+0x168/0x1df
[ 0.000000] [<c2c780ff>] ? native_pagetable_setup_start+0xef/0x1bb
[ 0.000000] [<c2c55b0b>] setup_arch+0x1826/0x1a38
[ 0.000000] [<c2c822be>] ? __reserve_early+0x17e/0x19a
[ 0.000000] [<c112cea4>] ? init_cgroup_css+0xd5/0x110
[ 0.000000] [<c2c4c50e>] start_kernel+0x1d1/0xc42
[ 0.000000] [<c2c4b1d9>] i386_start_kernel+0x1d9/0x1ef

--
Regards/Gruss,
Boris.

Operating Systems Research Center
Advanced Micro Devices, Inc.