* [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
[not found] <20080304011928.e8c82c0c.akpm@linux-foundation.org>
@ 2008-03-04 13:12 ` Kamalesh Babulal
2008-03-04 14:40 ` Michael Neuling
` (2 more replies)
2008-03-04 19:20 ` [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs Kamalesh Babulal
2008-03-05 21:34 ` 2.6.25-rc3-mm1 ppc64 boot hang Badari Pulavarty
2 siblings, 3 replies; 33+ messages in thread
From: Kamalesh Babulal @ 2008-03-04 13:12 UTC (permalink / raw)
To: Andrew Morton; +Cc: linuxppc-dev, linux-kernel
Hi Andrew,
The 2.6.25-rc3-mm1 kernel panics while bootup on power box. The machine booted up
without the panic on the third attempt, but badness call trace were seen while running
tests
1) The kernel panic on first attempt
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc00000000000cb2c
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in:
NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000000226
REGS: c00000000068f360 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
MSR: 8000000000001032 <ME,IR,DR> CR: 28000024 XER: 20000001
DAR: 0000000000000000, DSISR: 0000000040000000
TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
GPR00: c00000000068f5e0 c00000000068f5e0 c00000000068e690 0000000000000000
GPR04: 00000000000035e0 000000000087264e c000000008011280 c000000000594000
GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000008000 0000000000000000
GPR20: 0000000000000000 0000000000000000 000000000000007f 0000000000018000
GPR24: 0000000000000001 0000000000000080 0000000000000018 0000000000000000
GPR28: 0000000000000c00 c000000000588988 c000000000639be8 c000000008001c00
NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
Call Trace:
[c00000000068f5e0] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
[c00000000068f680] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
--- Exception: 501 at .memset+0x70/0xfc
LR = .__alloc_bootmem_core+0x39c/0x3dc
[c00000000068f970] [c00000000068fa10] init_thread_union+0x3a10/0x4000 (unreliable)
[c00000000068fa30] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
[c00000000068fad0] [c0000000003c477c] .zone_wait_table_init+0x74/0x108
[c00000000068fb60] [c0000000003d9058] .init_currently_empty_zone+0x40/0x11c
[c00000000068fc00] [c0000000003d94c8] .free_area_init_node+0x394/0x3fc
[c00000000068fcf0] [c00000000057314c] .free_area_init_nodes+0x2d8/0x364
[c00000000068fd90] [c00000000056682c] .paging_init+0x40/0x58
[c00000000068fe40] [c00000000055ba34] .setup_arch+0x20c/0x240
[c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
[c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
Instruction dump:
7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
2) The kernel panic on second attempt
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc00000000000cb2c
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in:
NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000014a99
REGS: c00000000068f410 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
MSR: 8000000000001032 <ME,IR,DR> CR: 28000044 XER: 00000001
DAR: 0000000000000000, DSISR: 0000000040000000
TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
GPR00: c00000000068f690 c00000000068f690 c00000000068e690 0000000000000000
GPR04: 0000000000003690 0000000000537672 c000000001ad59c0 c000000000594000
GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20: 0000000000230000 0000000000000000 0000000000ffffff 0000000001000000
GPR24: 0000000000001000 0000000001000000 0000000000001000 0000000000000000
GPR28: 0000000000000000 c0000000005889c8 c000000000639be8 c000000001000000
NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
Call Trace:
[c00000000068f690] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
[c00000000068f730] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
--- Exception: 501 at .memset+0x80/0xfc
LR = .__alloc_bootmem_core+0x39c/0x3dc
[c00000000068fa20] [c000000000641a78] sysctl_pernet_ops+0x108e0/0x1d6e0 (unreliable)
[c00000000068fae0] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
[c00000000068fb80] [c0000000003c48dc] .__earlyonly_bootmem_alloc+0x24/0x3c
[c00000000068fc00] [c0000000003d885c] .vmemmap_populate+0x7c/0xf4
[c00000000068fc90] [c0000000003d9b6c] .sparse_mem_map_populate+0x38/0x64
[c00000000068fd10] [c000000000573ec4] .sparse_early_mem_map_alloc+0x54/0x98
[c00000000068fda0] [c000000000573f70] .sparse_init+0x68/0x148
[c00000000068fe40] [c00000000055b9ec] .setup_arch+0x1c4/0x240
[c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
[c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
Instruction dump:
7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
3) Third attempt kernel booted up but had the following call trace 264 times while running
test
Badness at include/linux/gfp.h:110
NIP: c0000000000b4ff0 LR: c0000000000b4fa0 CTR: c00000000019cdb4
REGS: c000000009edf250 TRAP: 0700 Not tainted (2.6.25-rc3-mm1-autotest)
MSR: 8000000000029032 <EE,ME,IR,DR> CR: 22024042 XER: 20000003
TASK = c000000009062140[548] 'kjournald' THREAD: c000000009edc000 CPU: 0
NIP [c0000000000b4ff0] .get_page_from_freelist+0x29c/0x898
LR [c0000000000b4fa0] .get_page_from_freelist+0x24c/0x898
Call Trace:
[c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
[c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
[c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
[c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
[c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
[c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
[c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
[c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
[c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
[c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd8
[c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x1590
[c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
[c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
[c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
Instruction dump:
7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
@ 2008-03-04 14:40 ` Michael Neuling
2008-03-04 18:33 ` Andrew Morton
2008-03-04 18:36 ` Andrew Morton
2008-03-05 8:22 ` Benjamin Herrenschmidt
2 siblings, 1 reply; 33+ messages in thread
From: Michael Neuling @ 2008-03-04 14:40 UTC (permalink / raw)
To: Kamalesh Babulal; +Cc: linuxppc-dev, Andrew Morton, linux-kernel
In message <47CD4AB3.3080409@linux.vnet.ibm.com> you wrote:
> Hi Andrew,
>
> The 2.6.25-rc3-mm1 kernel panics while bootup on power box. The machine boote
d up
> without the panic on the third attempt, but badness call trace were seen whil
e running
> tests
>
> 1) The kernel panic on first attempt
>
> Unable to handle kernel paging request for data at address 0x00000000
> Faulting instruction address: 0xc00000000000cb2c
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=128 NUMA pSeries
> Modules linked in:
> NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000000226
> REGS: c00000000068f360 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000001032 <ME,IR,DR> CR: 28000024 XER: 20000001
> DAR: 0000000000000000, DSISR: 0000000040000000
> TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
> GPR00: c00000000068f5e0 c00000000068f5e0 c00000000068e690 0000000000000000
> GPR04: 00000000000035e0 000000000087264e c000000008011280 c000000000594000
> GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
> GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
> GPR16: 0000000000000000 0000000000000000 0000000000008000 0000000000000000
> GPR20: 0000000000000000 0000000000000000 000000000000007f 0000000000018000
> GPR24: 0000000000000001 0000000000000080 0000000000000018 0000000000000000
> GPR28: 0000000000000c00 c000000000588988 c000000000639be8 c000000008001c00
> NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
> LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
> Call Trace:
> [c00000000068f5e0] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
> [c00000000068f680] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
> --- Exception: 501 at .memset+0x70/0xfc
> LR = .__alloc_bootmem_core+0x39c/0x3dc
> [c00000000068f970] [c00000000068fa10] init_thread_union+0x3a10/0x4000 (unreli
able)
> [c00000000068fa30] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
> [c00000000068fad0] [c0000000003c477c] .zone_wait_table_init+0x74/0x108
> [c00000000068fb60] [c0000000003d9058] .init_currently_empty_zone+0x40/0x11c
> [c00000000068fc00] [c0000000003d94c8] .free_area_init_node+0x394/0x3fc
> [c00000000068fcf0] [c00000000057314c] .free_area_init_nodes+0x2d8/0x364
> [c00000000068fd90] [c00000000056682c] .paging_init+0x40/0x58
> [c00000000068fe40] [c00000000055ba34] .setup_arch+0x20c/0x240
> [c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
> [c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
> Instruction dump:
> 7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
> 480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
I'm not getting a crash but I am getting this:
start_kernel(): bug: interrupts were enabled *very* early, fixing it
...and you're getting a null pointer access here (in do_IRQ):
irq = ppc_md.get_irq();
Are we somehow enabling interrupts before we've setup ppc_md.get_irq?
Mikey
>
> 2) The kernel panic on second attempt
>
> Unable to handle kernel paging request for data at address 0x00000000
> Faulting instruction address: 0xc00000000000cb2c
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=128 NUMA pSeries
> Modules linked in:
> NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000014a99
> REGS: c00000000068f410 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000001032 <ME,IR,DR> CR: 28000044 XER: 00000001
> DAR: 0000000000000000, DSISR: 0000000040000000
> TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
> GPR00: c00000000068f690 c00000000068f690 c00000000068e690 0000000000000000
> GPR04: 0000000000003690 0000000000537672 c000000001ad59c0 c000000000594000
> GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
> GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
> GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR20: 0000000000230000 0000000000000000 0000000000ffffff 0000000001000000
> GPR24: 0000000000001000 0000000001000000 0000000000001000 0000000000000000
> GPR28: 0000000000000000 c0000000005889c8 c000000000639be8 c000000001000000
> NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
> LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
> Call Trace:
> [c00000000068f690] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
> [c00000000068f730] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
> --- Exception: 501 at .memset+0x80/0xfc
> LR = .__alloc_bootmem_core+0x39c/0x3dc
> [c00000000068fa20] [c000000000641a78] sysctl_pernet_ops+0x108e0/0x1d6e0 (unre
liable)
> [c00000000068fae0] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
> [c00000000068fb80] [c0000000003c48dc] .__earlyonly_bootmem_alloc+0x24/0x3c
> [c00000000068fc00] [c0000000003d885c] .vmemmap_populate+0x7c/0xf4
> [c00000000068fc90] [c0000000003d9b6c] .sparse_mem_map_populate+0x38/0x64
> [c00000000068fd10] [c000000000573ec4] .sparse_early_mem_map_alloc+0x54/0x98
> [c00000000068fda0] [c000000000573f70] .sparse_init+0x68/0x148
> [c00000000068fe40] [c00000000055b9ec] .setup_arch+0x1c4/0x240
> [c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
> [c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
> Instruction dump:
> 7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
> 480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
>
> 3) Third attempt kernel booted up but had the following call trace 264 times
while running
> test
>
> Badness at include/linux/gfp.h:110
> NIP: c0000000000b4ff0 LR: c0000000000b4fa0 CTR: c00000000019cdb4
> REGS: c000000009edf250 TRAP: 0700 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000029032 <EE,ME,IR,DR> CR: 22024042 XER: 20000003
> TASK = c000000009062140[548] 'kjournald' THREAD: c000000009edc000 CPU: 0
> NIP [c0000000000b4ff0] .get_page_from_freelist+0x29c/0x898
> LR [c0000000000b4fa0] .get_page_from_freelist+0x24c/0x898
> Call Trace:
> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> [c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd
8
> [c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x159
0
> [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> Instruction dump:
> 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
> --
> Thanks & Regards,
> Kamalesh Babulal,
> Linux Technology Center,
> IBM, ISTL.
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 14:40 ` Michael Neuling
@ 2008-03-04 18:33 ` Andrew Morton
2008-03-05 8:23 ` Benjamin Herrenschmidt
2008-03-06 0:03 ` Benjamin Herrenschmidt
0 siblings, 2 replies; 33+ messages in thread
From: Andrew Morton @ 2008-03-04 18:33 UTC (permalink / raw)
To: Michael Neuling
Cc: Matthew Wilcox, linuxppc-dev, linux-kernel, Kamalesh Babulal
On Tue, 04 Mar 2008 15:40:56 +0100 Michael Neuling <mikey@neuling.org> wrote:
> In message <47CD4AB3.3080409@linux.vnet.ibm.com> you wrote:
> > Hi Andrew,
> >
> > The 2.6.25-rc3-mm1 kernel panics while bootup on power box. The machine boote
> d up
> > without the panic on the third attempt, but badness call trace were seen whil
> e running
> > tests
> >
> > 1) The kernel panic on first attempt
> >
> > Unable to handle kernel paging request for data at address 0x00000000
> > Faulting instruction address: 0xc00000000000cb2c
> > Oops: Kernel access of bad area, sig: 11 [#1]
> > SMP NR_CPUS=128 NUMA pSeries
> > Modules linked in:
> > NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000000226
> > REGS: c00000000068f360 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
> > MSR: 8000000000001032 <ME,IR,DR> CR: 28000024 XER: 20000001
> > DAR: 0000000000000000, DSISR: 0000000040000000
> > TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
> > GPR00: c00000000068f5e0 c00000000068f5e0 c00000000068e690 0000000000000000
> > GPR04: 00000000000035e0 000000000087264e c000000008011280 c000000000594000
> > GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
> > GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
> > GPR16: 0000000000000000 0000000000000000 0000000000008000 0000000000000000
> > GPR20: 0000000000000000 0000000000000000 000000000000007f 0000000000018000
> > GPR24: 0000000000000001 0000000000000080 0000000000000018 0000000000000000
> > GPR28: 0000000000000c00 c000000000588988 c000000000639be8 c000000008001c00
> > NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
> > LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
> > Call Trace:
> > [c00000000068f5e0] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
> > [c00000000068f680] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
> > --- Exception: 501 at .memset+0x70/0xfc
> > LR = .__alloc_bootmem_core+0x39c/0x3dc
> > [c00000000068f970] [c00000000068fa10] init_thread_union+0x3a10/0x4000 (unreli
> able)
> > [c00000000068fa30] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
> > [c00000000068fad0] [c0000000003c477c] .zone_wait_table_init+0x74/0x108
> > [c00000000068fb60] [c0000000003d9058] .init_currently_empty_zone+0x40/0x11c
> > [c00000000068fc00] [c0000000003d94c8] .free_area_init_node+0x394/0x3fc
> > [c00000000068fcf0] [c00000000057314c] .free_area_init_nodes+0x2d8/0x364
> > [c00000000068fd90] [c00000000056682c] .paging_init+0x40/0x58
> > [c00000000068fe40] [c00000000055ba34] .setup_arch+0x20c/0x240
> > [c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
> > [c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
> > Instruction dump:
> > 7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
> > 480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
>
> I'm not getting a crash but I am getting this:
>
> start_kernel(): bug: interrupts were enabled *very* early, fixing it
>
> ...and you're getting a null pointer access here (in do_IRQ):
>
> irq = ppc_md.get_irq();
>
> Are we somehow enabling interrupts before we've setup ppc_md.get_irq?
>
Yes, we are - it's the semaphore rewrite which is doing this in
start_kernel(). It's being discussed.
Enabling interrupts too early on powerpc was discovered to be fatal on
powerpc years ago. It looks like that remains the case.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
2008-03-04 14:40 ` Michael Neuling
@ 2008-03-04 18:36 ` Andrew Morton
2008-03-04 18:47 ` Pekka Enberg
2008-03-04 19:18 ` Pekka Enberg
2008-03-05 8:22 ` Benjamin Herrenschmidt
2 siblings, 2 replies; 33+ messages in thread
From: Andrew Morton @ 2008-03-04 18:36 UTC (permalink / raw)
To: Kamalesh Babulal
Cc: linuxppc-dev, Mel Gorman, linux-kernel, linux-mm, Pekka Enberg
On Tue, 04 Mar 2008 18:42:19 +0530 Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote:
> 3) Third attempt kernel booted up but had the following call trace 264 times while running
> test
>
> Badness at include/linux/gfp.h:110
> NIP: c0000000000b4ff0 LR: c0000000000b4fa0 CTR: c00000000019cdb4
> REGS: c000000009edf250 TRAP: 0700 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000029032 <EE,ME,IR,DR> CR: 22024042 XER: 20000003
> TASK = c000000009062140[548] 'kjournald' THREAD: c000000009edc000 CPU: 0
> NIP [c0000000000b4ff0] .get_page_from_freelist+0x29c/0x898
> LR [c0000000000b4fa0] .get_page_from_freelist+0x24c/0x898
> Call Trace:
> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> [c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd8
> [c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x1590
> [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> Instruction dump:
> 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
/* Convert GFP flags to their corresponding migrate type */
static inline int allocflags_to_migratetype(gfp_t gfp_flags)
{
WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
Mel, Pekka: would you have some head-scratching time for this one please?
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 18:36 ` Andrew Morton
@ 2008-03-04 18:47 ` Pekka Enberg
2008-03-04 19:18 ` Pekka Enberg
1 sibling, 0 replies; 33+ messages in thread
From: Pekka Enberg @ 2008-03-04 18:47 UTC (permalink / raw)
To: Andrew Morton
Cc: linuxppc-dev, Mel Gorman, linux-kernel, Kamalesh Babulal,
linux-mm
On Tue, 04 Mar 2008 18:42:19 +0530 Kamalesh Babulal
<kamalesh@linux.vnet.ibm.com> wrote:
> > 3) Third attempt kernel booted up but had the following call trace 264 times while running
> > test
> >
> > Badness at include/linux/gfp.h:110
> > NIP: c0000000000b4ff0 LR: c0000000000b4fa0 CTR: c00000000019cdb4
> > REGS: c000000009edf250 TRAP: 0700 Not tainted (2.6.25-rc3-mm1-autotest)
> > MSR: 8000000000029032 <EE,ME,IR,DR> CR: 22024042 XER: 20000003
> > TASK = c000000009062140[548] 'kjournald' THREAD: c000000009edc000 CPU: 0
> > NIP [c0000000000b4ff0] .get_page_from_freelist+0x29c/0x898
> > LR [c0000000000b4fa0] .get_page_from_freelist+0x24c/0x898
> > Call Trace:
> > [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> > [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> > [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> > [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> > [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> > [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> > [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> > [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> > [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> > [c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd8
> > [c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x1590
> > [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> > [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> > [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> > Instruction dump:
> > 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> > 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
On Tue, Mar 4, 2008 at 8:36 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> /* Convert GFP flags to their corresponding migrate type */
> static inline int allocflags_to_migratetype(gfp_t gfp_flags)
> {
> WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
>
> Mel, Pekka: would you have some head-scratching time for this one please?
Sure. Just to double-check, this is with SLAB, right? Do you see this with SLUB?
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 18:36 ` Andrew Morton
2008-03-04 18:47 ` Pekka Enberg
@ 2008-03-04 19:18 ` Pekka Enberg
2008-03-04 19:35 ` Mel Gorman
1 sibling, 1 reply; 33+ messages in thread
From: Pekka Enberg @ 2008-03-04 19:18 UTC (permalink / raw)
To: Andrew Morton
Cc: linuxppc-dev, Mel Gorman, linux-kernel, Kamalesh Babulal,
linux-mm
Andrew Morton wrote:
> > [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> > [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> > [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> > [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> > [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> > [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> > [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> > [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> > [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> > [c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd8
> > [c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x1590
> > [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> > [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> > [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> > Instruction dump:
> > 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> > 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
>
> /* Convert GFP flags to their corresponding migrate type */
> static inline int allocflags_to_migratetype(gfp_t gfp_flags)
> {
> WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
>
> Mel, Pekka: would you have some head-scratching time for this one please?
What we have is __getblk() -> __getblk_slow() -> grow_buffers() ->
grow_dev_page() doing find_or_create_page() with __GFP_MOVABLE set. That
path then eventually does radix_tree_preload -> kmem_cache_alloc() to a
cache that has SLAB_RECLAIM_ACCOUNT set which implies __GFP_RECLAIMABLE
(for both SLAB and SLUB). So we oops there.
I suspect the WARN_ON() is bogus although I really don't know that part
of the code all too well. Mel?
Pekka
^ permalink raw reply [flat|nested] 33+ messages in thread
* [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs
[not found] <20080304011928.e8c82c0c.akpm@linux-foundation.org>
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
@ 2008-03-04 19:20 ` Kamalesh Babulal
2008-03-04 19:51 ` Andrew Morton
2008-03-05 21:34 ` 2.6.25-rc3-mm1 ppc64 boot hang Badari Pulavarty
2 siblings, 1 reply; 33+ messages in thread
From: Kamalesh Babulal @ 2008-03-04 19:20 UTC (permalink / raw)
To: Andrew Morton; +Cc: linuxppc-dev, Balbir Singh, linux-kernel
Hi Andrew,
kernel bug is triggered while running libhugetlbfs test with 2.6.25-rc3-mm1 kernel
over the x86 and power machines.
------------[ cut here ]------------
kernel BUG at mm/hugetlb.c:295!
invalid opcode: 0000 [#1] SMP
last sysfs file: /sys/devices/system/node/possible
Modules linked in:
Pid: 5484, comm: counters Not tainted (2.6.25-rc3-mm1-autokern1 #1)
EIP: 0060:[<c10535cf>] EFLAGS: 00010202 CPU: 0
EIP is at alloc_buddy_huge_page+0x7a/0xb0
EAX: c13acd01 EBX: f7d3a000 ECX: 00000000 EDX: 00006363
ESI: 00000001 EDI: 00000000 EBP: 00000000 ESP: f5539ebc
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process counters (pid: 5484, ti=f5538000 task=f60afa20 task.ti=f5538000)
Stack: 00000001 c1053669 fffffff4 00000001 f5539ecc f5539ecc 00000001 fffffff4
f55d0e78 00000001 c105480c 00000001 00200000 c1054875 00000000 f54426c0
00200000 00000000 f54426c0 c10b0fb8 fffffff4 00200000 00000000 f55d0e78
Call Trace:
[<c1053669>] gather_surplus_pages+0x64/0x16d
[<c105480c>] hugetlb_acct_memory+0x1e/0x4a
[<c1054875>] hugetlb_reserve_pages+0x3d/0x6b
[<c10b0fb8>] hugetlbfs_file_mmap+0x9b/0xe1
[<c104bf9f>] mmap_region+0x1dc/0x3ae
[<c104bd42>] do_mmap_pgoff+0x27f/0x28e
[<c1005af2>] sys_mmap2+0x5a/0x78
[<c10029fa>] syscall_call+0x7/0xb
=======================
Code: c1 e8 ed 27 1c 00 85 db 74 41 83 7b 04 00 75 10 68 c0 93 27 c1 e8 02 92 fc ff 58 e8 c1 02 fb ff f0 ff 4b 04 0f 94 c0 84 c0 74 04 <0f> 0b eb fe c7 43 38 3e 33 05 c1 8b 03 c1 e8 1c ff 04 85 60 ce
EIP: [<c10535cf>] alloc_buddy_huge_page+0x7a/0xb0 SS:ESP 0068:f5539ebc
---[ end trace 5a47484f8fe93a33 ]---
------------[ cut here ]------------
cpu 0x3: Vector: 700 (Program Check) at [c0000000fb277740]
pc: c0000000000c6f54: .alloc_buddy_huge_page+0x120/0x1dc
lr: c0000000000c6f20: .alloc_buddy_huge_page+0xec/0x1dc
sp: c0000000fb2779c0
msr: 8000000000029032
current = 0xc0000000fc4cae90
paca = 0xc0000000004fae80
pid = 6828, comm = counters
kernel BUG at mm/hugetlb.c:295!
enter ? for help
[c0000000fb277a50] c0000000000c70e8 .hugetlb_acct_memory+0xd8/0x374
[c0000000fb277b10] c0000000000c769c .hugetlb_reserve_pages+0x184/0x2b0
[c0000000fb277bc0] c00000000018c950 .hugetlbfs_file_mmap+0xec/0x160
[c0000000fb277c70] c0000000000bc280 .mmap_region+0x254/0x4d4
[c0000000fb277d80] c00000000000b1b8 .sys_mmap+0xa4/0x104
[c0000000fb277e30] c00000000000872c syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000004000019e528
SP (fffffcd4eb0) is in userspace
3:mon>
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 19:18 ` Pekka Enberg
@ 2008-03-04 19:35 ` Mel Gorman
2008-03-04 19:41 ` Pekka Enberg
0 siblings, 1 reply; 33+ messages in thread
From: Mel Gorman @ 2008-03-04 19:35 UTC (permalink / raw)
To: Pekka Enberg; +Cc: linux-mm, linuxppc-dev, Andrew Morton, Kamalesh Babulal
On (04/03/08 21:18), Pekka Enberg didst pronounce:
> Andrew Morton wrote:
> >> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> >> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> >> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> >> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> >> [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> >> [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> >> [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> >> [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> >> [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> >> [c000000009edfc00] [c0000000001b78c4]
> >.journal_get_descriptor_buffer+0x44/0xd8
> >> [c000000009edfca0] [c0000000001b236c]
> >.journal_commit_transaction+0x948/0x1590
> >> [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> >> [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> >> [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> >> Instruction dump:
> >> 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> >> 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000
> >80090000
> >/* Convert GFP flags to their corresponding migrate type */
> >static inline int allocflags_to_migratetype(gfp_t gfp_flags)
> >{
> > WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
> >
> >Mel, Pekka: would you have some head-scratching time for this one please?
>
> What we have is __getblk() -> __getblk_slow() -> grow_buffers() ->
> grow_dev_page() doing find_or_create_page() with __GFP_MOVABLE set. That
> path then eventually does radix_tree_preload -> kmem_cache_alloc() to a
> cache that has SLAB_RECLAIM_ACCOUNT set which implies __GFP_RECLAIMABLE
> (for both SLAB and SLUB). So we oops there.
>
> I suspect the WARN_ON() is bogus although I really don't know that part
> of the code all too well. Mel?
>
The warn-on is valid. A situation should not exist that allows both flags to
be set. I suspect if remove-set_migrateflags.patch was reverted from -mm
the warning would not trigger. Christoph, would it be reasonable to always
clear __GFP_MOVABLE when __GFP_RECLAIMABLE is set for SLAB_RECLAIM_ACCOUNT.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 19:35 ` Mel Gorman
@ 2008-03-04 19:41 ` Pekka Enberg
2008-03-04 19:56 ` Christoph Lameter
2008-03-04 20:01 ` Christoph Lameter
0 siblings, 2 replies; 33+ messages in thread
From: Pekka Enberg @ 2008-03-04 19:41 UTC (permalink / raw)
To: Mel Gorman
Cc: linuxppc-dev, Kamalesh Babulal, linux-mm, Andrew Morton,
Christoph Lameter
(adding Christoph as cc)
On Tue, Mar 4, 2008 at 9:35 PM, Mel Gorman <mel@csn.ul.ie> wrote:
> > >> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> > >> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> > >> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> > >> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> > >> [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> > >> [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> > >> [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> > >> [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> > >> [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> > >> [c000000009edfc00] [c0000000001b78c4]
> > >.journal_get_descriptor_buffer+0x44/0xd8
> > >> [c000000009edfca0] [c0000000001b236c]
> > >.journal_commit_transaction+0x948/0x1590
> > >> [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> > >> [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> > >> [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> > >> Instruction dump:
> > >> 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> > >> 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000
> > >80090000
> > >/* Convert GFP flags to their corresponding migrate type */
> > >static inline int allocflags_to_migratetype(gfp_t gfp_flags)
> > >{
> > > WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
> > >
> > >Mel, Pekka: would you have some head-scratching time for this one please?
> >
> > What we have is __getblk() -> __getblk_slow() -> grow_buffers() ->
> > grow_dev_page() doing find_or_create_page() with __GFP_MOVABLE set. That
> > path then eventually does radix_tree_preload -> kmem_cache_alloc() to a
> > cache that has SLAB_RECLAIM_ACCOUNT set which implies __GFP_RECLAIMABLE
> > (for both SLAB and SLUB). So we oops there.
> >
> > I suspect the WARN_ON() is bogus although I really don't know that part
> > of the code all too well. Mel?
> >
>
> The warn-on is valid. A situation should not exist that allows both flags to
> be set. I suspect if remove-set_migrateflags.patch was reverted from -mm
> the warning would not trigger. Christoph, would it be reasonable to always
> clear __GFP_MOVABLE when __GFP_RECLAIMABLE is set for SLAB_RECLAIM_ACCOUNT.
>
> --
> Mel Gorman
> Part-time Phd Student Linux Technology Center
> University of Limerick IBM Dublin Software Lab
>
>
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs
2008-03-04 19:20 ` [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs Kamalesh Babulal
@ 2008-03-04 19:51 ` Andrew Morton
2008-03-04 22:01 ` Adam Litke
0 siblings, 1 reply; 33+ messages in thread
From: Andrew Morton @ 2008-03-04 19:51 UTC (permalink / raw)
To: Kamalesh Babulal; +Cc: linuxppc-dev, balbir, linux-kernel
On Wed, 05 Mar 2008 00:50:17 +0530
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote:
> Hi Andrew,
>
> kernel bug is triggered while running libhugetlbfs test with 2.6.25-rc3-mm1 kernel
> over the x86 and power machines.
>
> ------------[ cut here ]------------
> kernel BUG at mm/hugetlb.c:295!
> invalid opcode: 0000 [#1] SMP
> last sysfs file: /sys/devices/system/node/possible
> Modules linked in:
>
> Pid: 5484, comm: counters Not tainted (2.6.25-rc3-mm1-autokern1 #1)
> EIP: 0060:[<c10535cf>] EFLAGS: 00010202 CPU: 0
> EIP is at alloc_buddy_huge_page+0x7a/0xb0
> EAX: c13acd01 EBX: f7d3a000 ECX: 00000000 EDX: 00006363
> ESI: 00000001 EDI: 00000000 EBP: 00000000 ESP: f5539ebc
> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Process counters (pid: 5484, ti=f5538000 task=f60afa20 task.ti=f5538000)
> Stack: 00000001 c1053669 fffffff4 00000001 f5539ecc f5539ecc 00000001 fffffff4
> f55d0e78 00000001 c105480c 00000001 00200000 c1054875 00000000 f54426c0
> 00200000 00000000 f54426c0 c10b0fb8 fffffff4 00200000 00000000 f55d0e78
> Call Trace:
> [<c1053669>] gather_surplus_pages+0x64/0x16d
> [<c105480c>] hugetlb_acct_memory+0x1e/0x4a
> [<c1054875>] hugetlb_reserve_pages+0x3d/0x6b
> [<c10b0fb8>] hugetlbfs_file_mmap+0x9b/0xe1
> [<c104bf9f>] mmap_region+0x1dc/0x3ae
> [<c104bd42>] do_mmap_pgoff+0x27f/0x28e
> [<c1005af2>] sys_mmap2+0x5a/0x78
> [<c10029fa>] syscall_call+0x7/0xb
> =======================
> Code: c1 e8 ed 27 1c 00 85 db 74 41 83 7b 04 00 75 10 68 c0 93 27 c1 e8 02 92 fc ff 58 e8 c1 02 fb ff f0 ff 4b 04 0f 94 c0 84 c0 74 04 <0f> 0b eb fe c7 43 38 3e 33 05 c1 8b 03 c1 e8 1c ff 04 85 60 ce
> EIP: [<c10535cf>] alloc_buddy_huge_page+0x7a/0xb0 SS:ESP 0068:f5539ebc
> ---[ end trace 5a47484f8fe93a33 ]---
>
>
Please send Adam a copy of that libhugetlbfs test ;)
hugetlb-correct-page-count-for-surplus-huge-pages.patch adds:
if (page) {
/*
* This page is now managed by the hugetlb allocator and has
* no users -- drop the buddy allocator's reference.
*/
int page_count = put_page_testzero(page);
BUG_ON(page_count != 0);
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 19:41 ` Pekka Enberg
@ 2008-03-04 19:56 ` Christoph Lameter
2008-03-04 20:01 ` Pekka J Enberg
2008-03-04 20:01 ` Christoph Lameter
1 sibling, 1 reply; 33+ messages in thread
From: Christoph Lameter @ 2008-03-04 19:56 UTC (permalink / raw)
To: Pekka Enberg
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
On Tue, 4 Mar 2008, Pekka Enberg wrote:
> > > I suspect the WARN_ON() is bogus although I really don't know that part
> > > of the code all too well. Mel?
> > >
> >
> > The warn-on is valid. A situation should not exist that allows both flags to
> > be set. I suspect if remove-set_migrateflags.patch was reverted from -mm
> > the warning would not trigger. Christoph, would it be reasonable to always
> > clear __GFP_MOVABLE when __GFP_RECLAIMABLE is set for SLAB_RECLAIM_ACCOUNT.
Slab allocations should never be passed these flags since the slabs do
their own thing there.
The following patch would clear these in slub:
---
mm/slub.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.25-rc3-mm1/mm/slub.c
===================================================================
--- linux-2.6.25-rc3-mm1.orig/mm/slub.c 2008-03-04 11:53:47.600342756 -0800
+++ linux-2.6.25-rc3-mm1/mm/slub.c 2008-03-04 11:55:40.153855150 -0800
@@ -1033,8 +1033,8 @@ static struct page *allocate_slab(struct
struct page *page;
int pages = 1 << s->order;
+ flags &= ~GFP_MOVABLE_MASK;
flags |= s->allocflags;
-
page = alloc_slab_page(flags | __GFP_NOWARN | __GFP_NORETRY,
node, s->order);
if (unlikely(!page)) {
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 19:56 ` Christoph Lameter
@ 2008-03-04 20:01 ` Pekka J Enberg
2008-03-04 20:02 ` Christoph Lameter
2008-03-04 20:07 ` Christoph Lameter
0 siblings, 2 replies; 33+ messages in thread
From: Pekka J Enberg @ 2008-03-04 20:01 UTC (permalink / raw)
To: Christoph Lameter
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
On Tue, 4 Mar 2008, Christoph Lameter wrote:
> Slab allocations should never be passed these flags since the slabs do
> their own thing there.
>
> The following patch would clear these in slub:
Here's the same fix for SLAB:
diff --git a/mm/slab.c b/mm/slab.c
index 473e6c2..c6dbf7e 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1677,6 +1677,7 @@ static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid)
flags |= __GFP_COMP;
#endif
+ flags &= ~GFP_MOVABLE_MASK;
flags |= cachep->gfpflags;
if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
flags |= __GFP_RECLAIMABLE;
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 19:41 ` Pekka Enberg
2008-03-04 19:56 ` Christoph Lameter
@ 2008-03-04 20:01 ` Christoph Lameter
1 sibling, 0 replies; 33+ messages in thread
From: Christoph Lameter @ 2008-03-04 20:01 UTC (permalink / raw)
To: Pekka Enberg
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
On Tue, 4 Mar 2008, Pekka Enberg wrote:
> > > >> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> > > >> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> > > >> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> > > >> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
Ahh! This is SLAB. slub does not suffer this problem since new_slab()
masks the bits correctly.
So we need to fix SLAB.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:01 ` Pekka J Enberg
@ 2008-03-04 20:02 ` Christoph Lameter
2008-03-04 20:07 ` Christoph Lameter
1 sibling, 0 replies; 33+ messages in thread
From: Christoph Lameter @ 2008-03-04 20:02 UTC (permalink / raw)
To: Pekka J Enberg
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
On Tue, 4 Mar 2008, Pekka J Enberg wrote:
> On Tue, 4 Mar 2008, Christoph Lameter wrote:
> > Slab allocations should never be passed these flags since the slabs do
> > their own thing there.
> >
> > The following patch would clear these in slub:
>
> Here's the same fix for SLAB:
That is an immediate fix ok. But there must be some location where SLAB
does the masking of the gfp bits where things go wrong. Looking for that.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:01 ` Pekka J Enberg
2008-03-04 20:02 ` Christoph Lameter
@ 2008-03-04 20:07 ` Christoph Lameter
2008-03-04 20:08 ` Pekka Enberg
` (2 more replies)
1 sibling, 3 replies; 33+ messages in thread
From: Christoph Lameter @ 2008-03-04 20:07 UTC (permalink / raw)
To: Pekka J Enberg
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
I think this is the correct fix.
The NUMA fallback logic should be passing local_flags to kmem_get_pages()
and not simply the flags.
Maybe a stable candidate since we are now simply
passing on flags to the page allocator on the fallback path.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/slab.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.25-rc3-mm1/mm/slab.c
===================================================================
--- linux-2.6.25-rc3-mm1.orig/mm/slab.c 2008-03-04 12:01:07.430911920 -0800
+++ linux-2.6.25-rc3-mm1/mm/slab.c 2008-03-04 12:04:54.449857145 -0800
@@ -3277,7 +3277,7 @@ retry:
if (local_flags & __GFP_WAIT)
local_irq_enable();
kmem_flagcheck(cache, flags);
- obj = kmem_getpages(cache, flags, -1);
+ obj = kmem_getpages(cache, local_flags, -1);
if (local_flags & __GFP_WAIT)
local_irq_disable();
if (obj) {
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:07 ` Christoph Lameter
@ 2008-03-04 20:08 ` Pekka Enberg
2008-03-05 2:28 ` Kamalesh Babulal
2008-03-04 20:34 ` Andrew Morton
2008-03-05 14:31 ` Mel Gorman
2 siblings, 1 reply; 33+ messages in thread
From: Pekka Enberg @ 2008-03-04 20:08 UTC (permalink / raw)
To: Christoph Lameter
Cc: linux-mm, Mel Gorman, Kamalesh Babulal, linuxppc-dev,
Andrew Morton
Christoph Lameter wrote:
> I think this is the correct fix.
>
> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> and not simply the flags.
>
> Maybe a stable candidate since we are now simply
> passing on flags to the page allocator on the fallback path.
>
> Signed-off-by: Christoph Lameter <clameter@sgi.com>
Indeed, good catch. I spotted the same thing just few seconds ago.
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
Was it you Kamalesh that reported this? Can you please re-test?
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:07 ` Christoph Lameter
2008-03-04 20:08 ` Pekka Enberg
@ 2008-03-04 20:34 ` Andrew Morton
2008-03-04 20:44 ` Pekka Enberg
2008-03-05 14:02 ` Mel Gorman
2008-03-05 14:31 ` Mel Gorman
2 siblings, 2 replies; 33+ messages in thread
From: Andrew Morton @ 2008-03-04 20:34 UTC (permalink / raw)
To: Christoph Lameter; +Cc: linux-mm, mel, kamalesh, linuxppc-dev, penberg, stable
On Tue, 4 Mar 2008 12:07:39 -0800 (PST)
Christoph Lameter <clameter@sgi.com> wrote:
> I think this is the correct fix.
>
> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> and not simply the flags.
>
> Maybe a stable candidate since we are now simply
> passing on flags to the page allocator on the fallback path.
Do we know why this is only reported in 2.6.25-rc3-mm1?
Why does this need fixing in 2.6.24.x?
Thanks.
> Signed-off-by: Christoph Lameter <clameter@sgi.com>
>
> ---
> mm/slab.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.25-rc3-mm1/mm/slab.c
> ===================================================================
> --- linux-2.6.25-rc3-mm1.orig/mm/slab.c 2008-03-04 12:01:07.430911920 -0800
> +++ linux-2.6.25-rc3-mm1/mm/slab.c 2008-03-04 12:04:54.449857145 -0800
> @@ -3277,7 +3277,7 @@ retry:
> if (local_flags & __GFP_WAIT)
> local_irq_enable();
> kmem_flagcheck(cache, flags);
> - obj = kmem_getpages(cache, flags, -1);
> + obj = kmem_getpages(cache, local_flags, -1);
> if (local_flags & __GFP_WAIT)
> local_irq_disable();
> if (obj) {
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:34 ` Andrew Morton
@ 2008-03-04 20:44 ` Pekka Enberg
2008-03-04 21:44 ` Christoph Lameter
2008-03-05 14:02 ` Mel Gorman
1 sibling, 1 reply; 33+ messages in thread
From: Pekka Enberg @ 2008-03-04 20:44 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-mm, mel, kamalesh, linuxppc-dev, stable, Christoph Lameter
Andrew Morton wrote:
> On Tue, 4 Mar 2008 12:07:39 -0800 (PST)
> Christoph Lameter <clameter@sgi.com> wrote:
>
>> I think this is the correct fix.
>>
>> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
>> and not simply the flags.
>>
>> Maybe a stable candidate since we are now simply
>> passing on flags to the page allocator on the fallback path.
>
> Do we know why this is only reported in 2.6.25-rc3-mm1?
>
> Why does this need fixing in 2.6.24.x?
Looking at the code, it's triggerable in 2.6.24.3 at least. Why we don't
have a report yet, probably because (1) the default allocator is SLUB
which doesn't suffer from this and (2) you need a big honkin' NUMA box
that causes fallback allocations to happen to trigger it.
Pekka
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:44 ` Pekka Enberg
@ 2008-03-04 21:44 ` Christoph Lameter
0 siblings, 0 replies; 33+ messages in thread
From: Christoph Lameter @ 2008-03-04 21:44 UTC (permalink / raw)
To: Pekka Enberg; +Cc: linux-mm, mel, kamalesh, linuxppc-dev, Andrew Morton, stable
On Tue, 4 Mar 2008, Pekka Enberg wrote:
> Looking at the code, it's triggerable in 2.6.24.3 at least. Why we don't have
> a report yet, probably because (1) the default allocator is SLUB which doesn't
> suffer from this and (2) you need a big honkin' NUMA box that causes fallback
> allocations to happen to trigger it.
Plus the issue only became a problem after the antifrag stuff went in.
That came with SLUB as the default.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs
2008-03-04 19:51 ` Andrew Morton
@ 2008-03-04 22:01 ` Adam Litke
2008-03-05 7:52 ` Kamalesh Babulal
0 siblings, 1 reply; 33+ messages in thread
From: Adam Litke @ 2008-03-04 22:01 UTC (permalink / raw)
To: Andrew Morton; +Cc: linuxppc-dev, balbir, linux-kernel, Kamalesh Babulal
On Tue, 2008-03-04 at 11:51 -0800, Andrew Morton wrote:
> hugetlb-correct-page-count-for-surplus-huge-pages.patch adds:
>
> if (page) {
> /*
> * This page is now managed by the hugetlb allocator and has
> * no users -- drop the buddy allocator's reference.
> */
> int page_count = put_page_testzero(page);
> BUG_ON(page_count != 0);
>
>
Ugh I got bitten by put_page_testzero(). When it returns 1, the page
count is zero (not the page count).
My initial version had a BUG_ON() with side-effects. When a reviewer
pointed it out, I thought I could fix the patch up on its way out the
door. I have self-administered my punishment. This patch will fix it:
Signed-off-by: Adam Litke <agl@us.ibm.com>
--- mm/hugetlb.c.orig 2008-03-04 13:36:30.000000000 -0800
+++ mm/hugetlb.c 2008-03-04 13:39:30.000000000 -0800
@@ -291,8 +291,8 @@ static struct page *alloc_buddy_huge_pag
* This page is now managed by the hugetlb allocator and has
* no users -- drop the buddy allocator's reference.
*/
- int page_count = put_page_testzero(page);
- BUG_ON(page_count != 0);
+ put_page_testzero(page);
+ VM_BUG_ON(page_count(page));
nid = page_to_nid(page);
set_compound_page_dtor(page, free_huge_page);
/*
--
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:08 ` Pekka Enberg
@ 2008-03-05 2:28 ` Kamalesh Babulal
0 siblings, 0 replies; 33+ messages in thread
From: Kamalesh Babulal @ 2008-03-05 2:28 UTC (permalink / raw)
To: Pekka Enberg
Cc: linux-mm, Mel Gorman, linuxppc-dev, Andrew Morton,
Christoph Lameter
Pekka Enberg wrote:
> Christoph Lameter wrote:
>> I think this is the correct fix.
>>
>> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
>> and not simply the flags.
>>
>> Maybe a stable candidate since we are now simply
>> passing on flags to the page allocator on the fallback path.
>>
>> Signed-off-by: Christoph Lameter <clameter@sgi.com>
>
> Indeed, good catch. I spotted the same thing just few seconds ago.
>
> Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
>
> Was it you Kamalesh that reported this? Can you please re-test?
Thanks the patch fixes the kernel bug.
Tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs
2008-03-04 22:01 ` Adam Litke
@ 2008-03-05 7:52 ` Kamalesh Babulal
0 siblings, 0 replies; 33+ messages in thread
From: Kamalesh Babulal @ 2008-03-05 7:52 UTC (permalink / raw)
To: Adam Litke; +Cc: linuxppc-dev, Andrew Morton, balbir, linux-kernel
Adam Litke wrote:
> On Tue, 2008-03-04 at 11:51 -0800, Andrew Morton wrote:
>> hugetlb-correct-page-count-for-surplus-huge-pages.patch adds:
>>
>> if (page) {
>> /*
>> * This page is now managed by the hugetlb allocator and has
>> * no users -- drop the buddy allocator's reference.
>> */
>> int page_count = put_page_testzero(page);
>> BUG_ON(page_count != 0);
>>
>>
>
> Ugh I got bitten by put_page_testzero(). When it returns 1, the page
> count is zero (not the page count).
>
> My initial version had a BUG_ON() with side-effects. When a reviewer
> pointed it out, I thought I could fix the patch up on its way out the
> door. I have self-administered my punishment. This patch will fix it:
Hi Adam,
Thanks the patch fixes the kernel bug while running the libhugetlbfs test.
Tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
>
> Signed-off-by: Adam Litke <agl@us.ibm.com>
>
> --- mm/hugetlb.c.orig 2008-03-04 13:36:30.000000000 -0800
> +++ mm/hugetlb.c 2008-03-04 13:39:30.000000000 -0800
> @@ -291,8 +291,8 @@ static struct page *alloc_buddy_huge_pag
> * This page is now managed by the hugetlb allocator and has
> * no users -- drop the buddy allocator's reference.
> */
> - int page_count = put_page_testzero(page);
> - BUG_ON(page_count != 0);
> + put_page_testzero(page);
> + VM_BUG_ON(page_count(page));
> nid = page_to_nid(page);
> set_compound_page_dtor(page, free_huge_page);
> /*
>
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
2008-03-04 14:40 ` Michael Neuling
2008-03-04 18:36 ` Andrew Morton
@ 2008-03-05 8:22 ` Benjamin Herrenschmidt
2 siblings, 0 replies; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-03-05 8:22 UTC (permalink / raw)
To: Kamalesh Babulal; +Cc: linuxppc-dev, Andrew Morton, linux-kernel
On Tue, 2008-03-04 at 18:42 +0530, Kamalesh Babulal wrote:
> Hi Andrew,
>
> The 2.6.25-rc3-mm1 kernel panics while bootup on power box. The machine booted up
> without the panic on the third attempt, but badness call trace were seen while running
> tests
We are taking a HW interrupt ... we aren't supposed to take HW
interrupts that early during boot afaik.
Is it yet another case of somebody hard-enabling interrupts with
local_irq_enable() ?
Ben.
> 1) The kernel panic on first attempt
>
> Unable to handle kernel paging request for data at address 0x00000000
> Faulting instruction address: 0xc00000000000cb2c
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=128 NUMA pSeries
> Modules linked in:
> NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000000226
> REGS: c00000000068f360 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000001032 <ME,IR,DR> CR: 28000024 XER: 20000001
> DAR: 0000000000000000, DSISR: 0000000040000000
> TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
> GPR00: c00000000068f5e0 c00000000068f5e0 c00000000068e690 0000000000000000
> GPR04: 00000000000035e0 000000000087264e c000000008011280 c000000000594000
> GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
> GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
> GPR16: 0000000000000000 0000000000000000 0000000000008000 0000000000000000
> GPR20: 0000000000000000 0000000000000000 000000000000007f 0000000000018000
> GPR24: 0000000000000001 0000000000000080 0000000000000018 0000000000000000
> GPR28: 0000000000000c00 c000000000588988 c000000000639be8 c000000008001c00
> NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
> LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
> Call Trace:
> [c00000000068f5e0] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
> [c00000000068f680] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
> --- Exception: 501 at .memset+0x70/0xfc
> LR = .__alloc_bootmem_core+0x39c/0x3dc
> [c00000000068f970] [c00000000068fa10] init_thread_union+0x3a10/0x4000 (unreliable)
> [c00000000068fa30] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
> [c00000000068fad0] [c0000000003c477c] .zone_wait_table_init+0x74/0x108
> [c00000000068fb60] [c0000000003d9058] .init_currently_empty_zone+0x40/0x11c
> [c00000000068fc00] [c0000000003d94c8] .free_area_init_node+0x394/0x3fc
> [c00000000068fcf0] [c00000000057314c] .free_area_init_nodes+0x2d8/0x364
> [c00000000068fd90] [c00000000056682c] .paging_init+0x40/0x58
> [c00000000068fe40] [c00000000055ba34] .setup_arch+0x20c/0x240
> [c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
> [c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
> Instruction dump:
> 7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
> 480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
>
> 2) The kernel panic on second attempt
>
> Unable to handle kernel paging request for data at address 0x00000000
> Faulting instruction address: 0xc00000000000cb2c
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=128 NUMA pSeries
> Modules linked in:
> NIP: c00000000000cb2c LR: c00000000000caf8 CTR: 0000000000014a99
> REGS: c00000000068f410 TRAP: 0300 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000001032 <ME,IR,DR> CR: 28000044 XER: 00000001
> DAR: 0000000000000000, DSISR: 0000000040000000
> TASK = c0000000005c8590[0] 'swapper' THREAD: c00000000068c000 CPU: 0
> GPR00: c00000000068f690 c00000000068f690 c00000000068e690 0000000000000000
> GPR04: 0000000000003690 0000000000537672 c000000001ad59c0 c000000000594000
> GPR08: c0000000005c9300 0000000000000000 c000000000591090 c00000000068c000
> GPR12: 8000000000009032 c0000000005c9300 0000000000000000 0000000000000000
> GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR20: 0000000000230000 0000000000000000 0000000000ffffff 0000000001000000
> GPR24: 0000000000001000 0000000001000000 0000000000001000 0000000000000000
> GPR28: 0000000000000000 c0000000005889c8 c000000000639be8 c000000001000000
> NIP [c00000000000cb2c] .do_IRQ+0x74/0x1c4
> LR [c00000000000caf8] .do_IRQ+0x40/0x1c4
> Call Trace:
> [c00000000068f690] [c00000000000caf8] .do_IRQ+0x40/0x1c4 (unreliable)
> [c00000000068f730] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
> --- Exception: 501 at .memset+0x80/0xfc
> LR = .__alloc_bootmem_core+0x39c/0x3dc
> [c00000000068fa20] [c000000000641a78] sysctl_pernet_ops+0x108e0/0x1d6e0 (unreliable)
> [c00000000068fae0] [c00000000057237c] .__alloc_bootmem_node+0x38/0x8c
> [c00000000068fb80] [c0000000003c48dc] .__earlyonly_bootmem_alloc+0x24/0x3c
> [c00000000068fc00] [c0000000003d885c] .vmemmap_populate+0x7c/0xf4
> [c00000000068fc90] [c0000000003d9b6c] .sparse_mem_map_populate+0x38/0x64
> [c00000000068fd10] [c000000000573ec4] .sparse_early_mem_map_alloc+0x54/0x98
> [c00000000068fda0] [c000000000573f70] .sparse_init+0x68/0x148
> [c00000000068fe40] [c00000000055b9ec] .setup_arch+0x1c4/0x240
> [c00000000068fee0] [c000000000552690] .start_kernel+0xdc/0x414
> [c00000000068ff90] [c000000000008594] .start_here_common+0x54/0xc0
> Instruction dump:
> 7c200b78 780404a0 2ba408ff 41bd001c e87e80a8 3884ff00 48058d21 60000000
> 480054cd 60000000 e93e80b0 e92900b8 <e8090000> f8410028 e9690010 e8490008
>
> 3) Third attempt kernel booted up but had the following call trace 264 times while running
> test
>
> Badness at include/linux/gfp.h:110
> NIP: c0000000000b4ff0 LR: c0000000000b4fa0 CTR: c00000000019cdb4
> REGS: c000000009edf250 TRAP: 0700 Not tainted (2.6.25-rc3-mm1-autotest)
> MSR: 8000000000029032 <EE,ME,IR,DR> CR: 22024042 XER: 20000003
> TASK = c000000009062140[548] 'kjournald' THREAD: c000000009edc000 CPU: 0
> NIP [c0000000000b4ff0] .get_page_from_freelist+0x29c/0x898
> LR [c0000000000b4fa0] .get_page_from_freelist+0x24c/0x898
> Call Trace:
> [c000000009edf5f0] [c0000000000b56e4] .__alloc_pages_internal+0xf8/0x470
> [c000000009edf6e0] [c0000000000e0458] .kmem_getpages+0x8c/0x194
> [c000000009edf770] [c0000000000e1050] .fallback_alloc+0x194/0x254
> [c000000009edf820] [c0000000000e14b0] .kmem_cache_alloc+0xd8/0x144
> [c000000009edf8c0] [c0000000001fe0f8] .radix_tree_preload+0x50/0xd4
> [c000000009edf960] [c0000000000ad048] .add_to_page_cache+0x38/0x12c
> [c000000009edfa00] [c0000000000ad158] .add_to_page_cache_lru+0x1c/0x4c
> [c000000009edfa90] [c0000000000add58] .find_or_create_page+0x60/0xa8
> [c000000009edfb30] [c00000000011e478] .__getblk+0x140/0x310
> [c000000009edfc00] [c0000000001b78c4] .journal_get_descriptor_buffer+0x44/0xd8
> [c000000009edfca0] [c0000000001b236c] .journal_commit_transaction+0x948/0x1590
> [c000000009edfe00] [c0000000001b585c] .kjournald+0xf4/0x2ac
> [c000000009edff00] [c00000000007ff4c] .kthread+0x84/0xd0
> [c000000009edff90] [c000000000028900] .kernel_thread+0x4c/0x68
> Instruction dump:
> 7dc57378 48009575 60000000 2fa30000 419e0490 56c902d8 3c000018 7dd907b4
> 7ad2c7e2 7f890000 7c000026 5400fffe <0b000000> e93e8128 3b000000 80090000
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 18:33 ` Andrew Morton
@ 2008-03-05 8:23 ` Benjamin Herrenschmidt
2008-03-06 0:03 ` Benjamin Herrenschmidt
1 sibling, 0 replies; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-03-05 8:23 UTC (permalink / raw)
To: Andrew Morton
Cc: Matthew Wilcox, linuxppc-dev, Michael Neuling, linux-kernel,
Kamalesh Babulal
On Tue, 2008-03-04 at 10:33 -0800, Andrew Morton wrote:
> > Are we somehow enabling interrupts before we've setup
> ppc_md.get_irq?
> >
>
> Yes, we are - it's the semaphore rewrite which is doing this in
> start_kernel(). It's being discussed.
>
> Enabling interrupts too early on powerpc was discovered to be fatal on
> powerpc years ago. It looks like that remains the case.
Yes, it is and will probably always be. All that semaphore mucking
around that hard-enables interrupts is just asking for trouble (and on
more than just powerpc... heh, how do you do if your main interrupt
controller hasn't even been initialized yet ?)
Ben.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:34 ` Andrew Morton
2008-03-04 20:44 ` Pekka Enberg
@ 2008-03-05 14:02 ` Mel Gorman
1 sibling, 0 replies; 33+ messages in thread
From: Mel Gorman @ 2008-03-05 14:02 UTC (permalink / raw)
To: Andrew Morton
Cc: linuxppc-dev, kamalesh, linux-mm, penberg, stable,
Christoph Lameter
On (04/03/08 12:34), Andrew Morton didst pronounce:
> On Tue, 4 Mar 2008 12:07:39 -0800 (PST)
> Christoph Lameter <clameter@sgi.com> wrote:
>
> > I think this is the correct fix.
> >
> > The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> > and not simply the flags.
> >
> > Maybe a stable candidate since we are now simply
> > passing on flags to the page allocator on the fallback path.
>
> Do we know why this is only reported in 2.6.25-rc3-mm1?
>
> Why does this need fixing in 2.6.24.x?
>
I don't believe it needs to be fixed in 2.6.24.3. The call-sites in
lib/radix-tree.c there look like
ret = kmem_cache_alloc(radix_tree_node_cachep,
set_migrateflags(gfp_mask, __GFP_RECLAIMABLE));
node = kmem_cache_alloc(radix_tree_node_cachep,
set_migrateflags(gfp_mask, __GFP_RECLAIMABLE));
and set_migrateflags() looks like
#define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE)
static inline gfp_t set_migrateflags(gfp_t gfp, gfp_t migrate_flags)
{
BUG_ON((gfp & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
return (gfp & ~(GFP_MOVABLE_MASK)) | migrate_flags;
}
so the flags were already getting cleared and the WARN_ON could not
trigger in this path. In 2.6.25-rc3-mm1, the patch
remove-set_migrateflags.patch gets rid of set_migateflags()
which led to this situation.
The surprise is that it didn't get caught in an earlier -mm but it could
be because it only affected slab.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 20:07 ` Christoph Lameter
2008-03-04 20:08 ` Pekka Enberg
2008-03-04 20:34 ` Andrew Morton
@ 2008-03-05 14:31 ` Mel Gorman
2 siblings, 0 replies; 33+ messages in thread
From: Mel Gorman @ 2008-03-05 14:31 UTC (permalink / raw)
To: Christoph Lameter
Cc: linuxppc-dev, Kamalesh Babulal, linux-mm, Pekka J Enberg,
Andrew Morton
On (04/03/08 12:07), Christoph Lameter didst pronounce:
> I think this is the correct fix.
>
> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> and not simply the flags.
>
> Maybe a stable candidate since we are now simply
> passing on flags to the page allocator on the fallback path.
>
> Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: Mel Gorman <mel@csn.ul.ie>
Thanks Christoph.
>
> ---
> mm/slab.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.25-rc3-mm1/mm/slab.c
> ===================================================================
> --- linux-2.6.25-rc3-mm1.orig/mm/slab.c 2008-03-04 12:01:07.430911920 -0800
> +++ linux-2.6.25-rc3-mm1/mm/slab.c 2008-03-04 12:04:54.449857145 -0800
> @@ -3277,7 +3277,7 @@ retry:
> if (local_flags & __GFP_WAIT)
> local_irq_enable();
> kmem_flagcheck(cache, flags);
> - obj = kmem_getpages(cache, flags, -1);
> + obj = kmem_getpages(cache, local_flags, -1);
> if (local_flags & __GFP_WAIT)
> local_irq_disable();
> if (obj) {
>
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
^ permalink raw reply [flat|nested] 33+ messages in thread
* 2.6.25-rc3-mm1 ppc64 boot hang
[not found] <20080304011928.e8c82c0c.akpm@linux-foundation.org>
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
2008-03-04 19:20 ` [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs Kamalesh Babulal
@ 2008-03-05 21:34 ` Badari Pulavarty
2008-03-05 21:54 ` Andrew Morton
2 siblings, 1 reply; 33+ messages in thread
From: Badari Pulavarty @ 2008-03-05 21:34 UTC (permalink / raw)
To: Andrew Morton; +Cc: linuxppc-dev, lkml
On Tue, 2008-03-04 at 01:19 -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc3/2.6.25-rc3-mm1/
>
Hi Andrew,
Not able to boot 2.6.25-rc3-mm1 my ppc64 box.
2.6.25-rc2-mm1 and 2.6.25-rc3 boots fine.
I applied slab.c fix also.
Any other known issues ? My config file attached.
Here are the messages on the console.
Thanks,
Badari
Linux/PowerPC load: root=/dev/sda3 selinux=0 elevator=cfq numa=debug
kernelcore=1024M
Finalizing device tree... using OF tree (promptr=00c39a50)
OF stdout device is: /vdevice/vty@30000000
Hypertas detected, assuming LPAR !
command line: root=/dev/sda3 selinux=0 elevator=cfq numa=debug
kernelcore=1024M
memory layout at init:
alloc_bottom : 00000000023d0000
alloc_top : 0000000008000000
alloc_top_hi : 0000000072000000
rmo_top : 0000000008000000
ram_top : 0000000072000000
Looking for displays
instantiating rtas at 0x00000000077ca000 ... done
0000000000000000 : boot cpu 0000000000000000
0000000000000002 : starting cpu hw idx 0000000000000002... done
copying OF device tree ...
Building dt strings...
Building dt structure...
Device tree strings 0x00000000023d1000 -> 0x00000000023d21cf
Device tree struct 0x00000000023d3000 -> 0x00000000023e0000
Calling quiesce ...
returning from prom_init
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-rc3-mm1
# Wed Mar 5 10:34:39 2008
#
CONFIG_PPC64=y
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_MM_SLICES=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
CONFIG_64BIT=y
CONFIG_WORD_SIZE=64
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_ARCH_HAS_ILOG2_U64=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y
CONFIG_OF=y
CONFIG_PPC_UDBG_16550=y
CONFIG_GENERIC_TBSYNC=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
# CONFIG_DEFAULT_UIMAGE is not set
CONFIG_HIBERNATE_64=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
# CONFIG_PPC_DCR_NATIVE is not set
# CONFIG_PPC_DCR_MMIO is not set
# CONFIG_PPC_OF_PLATFORM_PCI is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_NS=y
# CONFIG_CPUSETS is not set
CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_SYSCTL_SYSCALL=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROFILING=y
CONFIG_MARKERS=y
CONFIG_OPROFILE=y
CONFIG_HAVE_OPROFILE=y
CONFIG_KPROBES=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_BLOCK_COMPAT=y
#
# IO Schedulers
#
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_CLASSIC_RCU=y
# CONFIG_PREEMPT_RCU is not set
#
# Platform support
#
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_82xx is not set
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
CONFIG_PPC_PSERIES=y
# CONFIG_PPC_SPLPAR is not set
CONFIG_EEH=y
CONFIG_SCANLOG=y
# CONFIG_LPARCFG is not set
# CONFIG_PPC_ISERIES is not set
# CONFIG_PPC_MPC512x is not set
# CONFIG_PPC_MPC5121 is not set
CONFIG_PPC_PMAC=y
CONFIG_PPC_PMAC64=y
# CONFIG_PPC_MAPLE is not set
# CONFIG_PPC_PASEMI is not set
# CONFIG_PPC_CELLEB is not set
# CONFIG_PPC_PS3 is not set
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PPC_IBM_CELL_BLADE is not set
# CONFIG_PQ2ADS is not set
CONFIG_PPC_NATIVE=y
# CONFIG_UDBG_RTAS_CONSOLE is not set
CONFIG_XICS=y
# CONFIG_IPIC is not set
CONFIG_MPIC=y
# CONFIG_MPIC_WEIRD is not set
CONFIG_PPC_I8259=y
CONFIG_U3_DART=y
CONFIG_PPC_RTAS=y
CONFIG_RTAS_ERROR_LOGGING=y
CONFIG_RTAS_PROC=y
# CONFIG_RTAS_FLASH is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_MPIC_U3_HT_IRQS=y
CONFIG_IBMVIO=y
# CONFIG_IBMEBUS is not set
# CONFIG_PPC_MPC106 is not set
CONFIG_PPC_970_NAP=y
# CONFIG_PPC_INDIRECT_IO is not set
# CONFIG_GENERIC_IOMAP is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_FSL_ULI1575 is not set
#
# Kernel options
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_RCU_TRACE=y
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
# CONFIG_IOMMU_VMERGE is not set
CONFIG_IOMMU_HELPER=y
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_HAS_WALK_MEMORY=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=4
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_ARCH_MEMORY_PROBE=y
CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_PPC_HAS_HASH_64K is not set
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y
# CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
#
# Bus options
#
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
CONFIG_HOTPLUG_PCI_RPA=y
CONFIG_HOTPLUG_PCI_RPA_DLPAR=y
CONFIG_KERNEL_START=0xc000000000000000
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
# CONFIG_MTD is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ENCLOSURE_SERVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_IBMVSCSI is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_STEX is not set
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=y
CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA_FC=m
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SVW is not set
# CONFIG_ATA_PIIX is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIL24 is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_PLATFORM is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
# CONFIG_MD_RAID10 is not set
# CONFIG_MD_RAID456 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
# CONFIG_BLK_DEV_DM is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
CONFIG_MACINTOSH_DRIVERS=y
# CONFIG_ADB_PMU is not set
# CONFIG_PMAC_SMU is not set
# CONFIG_MAC_EMUMOUSEBTN is not set
# CONFIG_WINDFARM is not set
# CONFIG_PMAC_RACKMETER is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
CONFIG_NET_VENDOR_3COM=y
CONFIG_VORTEX=y
# CONFIG_TYPHOON is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_IBMVETH is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
CONFIG_NET_PCI=y
CONFIG_PCNET32=y
# CONFIG_PCNET32_NAPI is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R6040 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
CONFIG_NETDEV_1000=y
CONFIG_ACENIC=y
CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_E1000E is not set
# CONFIG_E1000E_ENABLED is not set
# CONFIG_IP1000 is not set
# CONFIG_IGB is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_NIU is not set
# CONFIG_PASEMI_MAC is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TEHUTI is not set
# CONFIG_BNX2X is not set
# CONFIG_TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_UINPUT is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_PMACZILOG is not set
# CONFIG_SERIAL_ICOM is not set
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_OF_PLATFORM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_HVC_DRIVER=y
CONFIG_HVC_CONSOLE=y
# CONFIG_HVC_RTAS is not set
# CONFIG_HVCS is not set
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
CONFIG_RAW_DRIVER=y
CONFIG_MAX_RAW_DEVS=256
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set
# CONFIG_SPI is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_THERMAL=y
# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
# Graphics support
#
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
CONFIG_FB_FOREIGN_ENDIAN=y
CONFIG_FB_BOTH_ENDIAN=y
# CONFIG_FB_BIG_ENDIAN is not set
# CONFIG_FB_LITTLE_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
CONFIG_FB_MACMODES=y
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
CONFIG_FB_MATROX=y
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
# CONFIG_FB_MATROX_G is not set
# CONFIG_FB_MATROX_I2C is not set
CONFIG_FB_MATROX_MULTIHEAD=y
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
# CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_UIO is not set
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISER4_FS is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
CONFIG_JFS_FS=y
# CONFIG_JFS_POSIX_ACL is not set
# CONFIG_JFS_SECURITY is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_XFS_FS=y
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# CONFIG_CONFIGFS_FS is not set
#
# Layered filesystems
#
CONFIG_UNION_FS=y
CONFIG_UNION_FS_XATTR=y
# CONFIG_UNION_FS_DEBUG is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=y
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_BIND34 is not set
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=y
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
# CONFIG_DLM is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
CONFIG_CRC16=m
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_PAGE_OWNER=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_HCALL_STATS is not set
# CONFIG_DEBUGGER is not set
# CONFIG_IRQSTACKS is not set
# CONFIG_VIRQ_DEBUG is not set
# CONFIG_BOOTX_TEXT is not set
# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_MANAGER=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_LZO is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
# CONFIG_PPC_CLOCK is not set
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: 2.6.25-rc3-mm1 ppc64 boot hang
2008-03-05 21:34 ` 2.6.25-rc3-mm1 ppc64 boot hang Badari Pulavarty
@ 2008-03-05 21:54 ` Andrew Morton
2008-03-05 22:35 ` Badari Pulavarty
2008-03-05 23:17 ` Stephen Rothwell
0 siblings, 2 replies; 33+ messages in thread
From: Andrew Morton @ 2008-03-05 21:54 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: Matthew Wilcox, linuxppc-dev, linux-kernel
On Wed, 05 Mar 2008 13:34:14 -0800
Badari Pulavarty <pbadari@gmail.com> wrote:
> On Tue, 2008-03-04 at 01:19 -0800, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc3/2.6.25-rc3-mm1/
> >
>
> Hi Andrew,
>
> Not able to boot 2.6.25-rc3-mm1 my ppc64 box.
> 2.6.25-rc2-mm1 and 2.6.25-rc3 boots fine.
>
> I applied slab.c fix also.
>
> Any other known issues ? My config file attached.
> Here are the messages on the console.
The semaphore consolidation code enables interrupts early in boot, when it
shouldn't. This tends to make powerpc blow up. Could be that this is what
you're hitting.
Matthew, is this ging to be fixed soon?
Thanks.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: 2.6.25-rc3-mm1 ppc64 boot hang
2008-03-05 21:54 ` Andrew Morton
@ 2008-03-05 22:35 ` Badari Pulavarty
2008-03-05 23:17 ` Stephen Rothwell
1 sibling, 0 replies; 33+ messages in thread
From: Badari Pulavarty @ 2008-03-05 22:35 UTC (permalink / raw)
To: Andrew Morton; +Cc: Matthew Wilcox, linuxppc-dev, lkml
On Wed, 2008-03-05 at 13:54 -0800, Andrew Morton wrote:
> On Wed, 05 Mar 2008 13:34:14 -0800
> Badari Pulavarty <pbadari@gmail.com> wrote:
>
> > On Tue, 2008-03-04 at 01:19 -0800, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc3/2.6.25-rc3-mm1/
> > >
> >
> > Hi Andrew,
> >
> > Not able to boot 2.6.25-rc3-mm1 my ppc64 box.
> > 2.6.25-rc2-mm1 and 2.6.25-rc3 boots fine.
> >
> > I applied slab.c fix also.
> >
> > Any other known issues ? My config file attached.
> > Here are the messages on the console.
>
> The semaphore consolidation code enables interrupts early in boot, when it
> shouldn't. This tends to make powerpc blow up. Could be that this is what
> you're hitting.
>
> Matthew, is this ging to be fixed soon?
Yes. I just backed out git-semaphore.patch and machine booted fine.
Thanks,
Badari
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: 2.6.25-rc3-mm1 ppc64 boot hang
2008-03-05 21:54 ` Andrew Morton
2008-03-05 22:35 ` Badari Pulavarty
@ 2008-03-05 23:17 ` Stephen Rothwell
1 sibling, 0 replies; 33+ messages in thread
From: Stephen Rothwell @ 2008-03-05 23:17 UTC (permalink / raw)
To: Andrew Morton
Cc: Matthew Wilcox, linuxppc-dev, linux-kernel, Badari Pulavarty
[-- Attachment #1: Type: text/plain, Size: 476 bytes --]
Hi Andrew,
On Wed, 5 Mar 2008 13:54:25 -0800 Andrew Morton <akpm@linux-foundation.org> wrote:
>
> The semaphore consolidation code enables interrupts early in boot, when it
> shouldn't. This tends to make powerpc blow up. Could be that this is what
> you're hitting.
>
> Matthew, is this ging to be fixed soon?
There is a new version of these patches in the current linux-next tree ...
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-04 18:33 ` Andrew Morton
2008-03-05 8:23 ` Benjamin Herrenschmidt
@ 2008-03-06 0:03 ` Benjamin Herrenschmidt
2008-03-06 0:44 ` Andrew Morton
1 sibling, 1 reply; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-03-06 0:03 UTC (permalink / raw)
To: Andrew Morton
Cc: Matthew Wilcox, linuxppc-dev, Michael Neuling, linux-kernel,
Kamalesh Babulal
> Yes, we are - it's the semaphore rewrite which is doing this in
> start_kernel(). It's being discussed.
>
> Enabling interrupts too early on powerpc was discovered to be fatal on
> powerpc years ago. It looks like that remains the case.
Regarding these issues. I could make it non fatal and just WARN_ON,
provided that I have a way to differentiate legal vs. illegal calls
to local_irq_enable(). We already have that function mostly out of
line in C code due to our lazy irq disabling scheme, so the overhead of
testing some global kernel state would be minimum here.
However, I don't see anything around init/main.c:start_kernel() that I
can use. What do you reckon here we should do ? Add some kind of global
we set before calling local_irq_enable() ? Or make early_boot_irqs_on()
do that generically
It's currently defined as an empty inline without CONFIG_TRACE_IRQFLAGS
but we could make it set a flag instead.
I'm pretty sure other archs have similar problems, especially in the
embedded world where you are booted with random junk firmwares that may
leave devices, interrupt controllers etc... in random state, and
enabling incoming IRQs before the arch code properly initializes the
main interrupt controller can be fatal. I know at least of an ARM board
I worked on a while ago that had a similar issues.
On ppc32, unfortunately, our local_irq_enable/restore are nice inlines
that whack the appropriate MSR bits directly, thus adding a test for a
global flag would add some bloat/overhead that I'd like to avoid, at
least until we decide to also do lazy disabling on those, if ever...
Cheers,
Ben.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-06 0:03 ` Benjamin Herrenschmidt
@ 2008-03-06 0:44 ` Andrew Morton
2008-03-06 0:52 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 33+ messages in thread
From: Andrew Morton @ 2008-03-06 0:44 UTC (permalink / raw)
To: benh; +Cc: willy, linuxppc-dev, mikey, linux-kernel, kamalesh
On Thu, 06 Mar 2008 11:03:31 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > Yes, we are - it's the semaphore rewrite which is doing this in
> > start_kernel(). It's being discussed.
> >
> > Enabling interrupts too early on powerpc was discovered to be fatal on
> > powerpc years ago. It looks like that remains the case.
>
> Regarding these issues. I could make it non fatal and just WARN_ON,
> provided that I have a way to differentiate legal vs. illegal calls
> to local_irq_enable().
And local_irq_restore() and various other things.
> We already have that function mostly out of
> line in C code due to our lazy irq disabling scheme, so the overhead of
> testing some global kernel state would be minimum here.
>
> However, I don't see anything around init/main.c:start_kernel() that I
> can use. What do you reckon here we should do ? Add some kind of global
> we set before calling local_irq_enable() ? Or make early_boot_irqs_on()
> do that generically
>
> It's currently defined as an empty inline without CONFIG_TRACE_IRQFLAGS
> but we could make it set a flag instead.
>
> I'm pretty sure other archs have similar problems, especially in the
> embedded world where you are booted with random junk firmwares that may
> leave devices, interrupt controllers etc... in random state, and
> enabling incoming IRQs before the arch code properly initializes the
> main interrupt controller can be fatal. I know at least of an ARM board
> I worked on a while ago that had a similar issues.
>
> On ppc32, unfortunately, our local_irq_enable/restore are nice inlines
> that whack the appropriate MSR bits directly, thus adding a test for a
> global flag would add some bloat/overhead that I'd like to avoid, at
> least until we decide to also do lazy disabling on those, if ever...
I'd have thought that the way to do this would be to add it to lockdep -
lockdep already has all the infrastructure and code sites to do this.
Set some special flag saying its-ok-to-enable-interrupts-now and test that
in lockdep.
akpm:/usr/src/25> grep LOCKDEP arch/powerpc/Kconfig
akpm:/usr/src/25>
losers ;)
Still, doing it for
akpm:/usr/src/25> grep -l LOCKDEP arch/*/Kconfig
arch/arm/Kconfig
arch/avr32/Kconfig
arch/mips/Kconfig
arch/s390/Kconfig
arch/sh/Kconfig
arch/sparc64/Kconfig
arch/um/Kconfig
arch/x86/Kconfig
should give pretty good coverage.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
2008-03-06 0:44 ` Andrew Morton
@ 2008-03-06 0:52 ` Benjamin Herrenschmidt
0 siblings, 0 replies; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-03-06 0:52 UTC (permalink / raw)
To: Andrew Morton; +Cc: willy, linuxppc-dev, mikey, linux-kernel, kamalesh
On Wed, 2008-03-05 at 16:44 -0800, Andrew Morton wrote:
> On Thu, 06 Mar 2008 11:03:31 +1100
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> >
> > > Yes, we are - it's the semaphore rewrite which is doing this in
> > > start_kernel(). It's being discussed.
> > >
> > > Enabling interrupts too early on powerpc was discovered to be fatal on
> > > powerpc years ago. It looks like that remains the case.
> >
> > Regarding these issues. I could make it non fatal and just WARN_ON,
> > provided that I have a way to differentiate legal vs. illegal calls
> > to local_irq_enable().
>
> And local_irq_restore() and various other things.
Yes, on powerpc 64 bits, they all go down to one C function that does
the lazy enable/disable, so it would be easy to deal with. 32 bits
doesn't have it that simple tho.
> I'd have thought that the way to do this would be to add it to lockdep -
> lockdep already has all the infrastructure and code sites to do this.
>
> Set some special flag saying its-ok-to-enable-interrupts-now and test that
> in lockdep.
Ok.
> akpm:/usr/src/25> grep LOCKDEP arch/powerpc/Kconfig
> akpm:/usr/src/25>
>
> losers ;)
I have lockdep patches for powerpc 32 and 64 bits. They aren't upstream
yet as they need a bit more beating up and there's at least one machine
that doesn't seem to like them, so I'm working on just that. That's a
good idea to add the test to lockdep tho, I'll see what I can do.
> Still, doing it for
>
> akpm:/usr/src/25> grep -l LOCKDEP arch/*/Kconfig
> arch/arm/Kconfig
> arch/avr32/Kconfig
> arch/mips/Kconfig
> arch/s390/Kconfig
> arch/sh/Kconfig
> arch/sparc64/Kconfig
> arch/um/Kconfig
> arch/x86/Kconfig
>
> should give pretty good coverage.
Ben.
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2008-03-06 0:54 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080304011928.e8c82c0c.akpm@linux-foundation.org>
2008-03-04 13:12 ` [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc () Kamalesh Babulal
2008-03-04 14:40 ` Michael Neuling
2008-03-04 18:33 ` Andrew Morton
2008-03-05 8:23 ` Benjamin Herrenschmidt
2008-03-06 0:03 ` Benjamin Herrenschmidt
2008-03-06 0:44 ` Andrew Morton
2008-03-06 0:52 ` Benjamin Herrenschmidt
2008-03-04 18:36 ` Andrew Morton
2008-03-04 18:47 ` Pekka Enberg
2008-03-04 19:18 ` Pekka Enberg
2008-03-04 19:35 ` Mel Gorman
2008-03-04 19:41 ` Pekka Enberg
2008-03-04 19:56 ` Christoph Lameter
2008-03-04 20:01 ` Pekka J Enberg
2008-03-04 20:02 ` Christoph Lameter
2008-03-04 20:07 ` Christoph Lameter
2008-03-04 20:08 ` Pekka Enberg
2008-03-05 2:28 ` Kamalesh Babulal
2008-03-04 20:34 ` Andrew Morton
2008-03-04 20:44 ` Pekka Enberg
2008-03-04 21:44 ` Christoph Lameter
2008-03-05 14:02 ` Mel Gorman
2008-03-05 14:31 ` Mel Gorman
2008-03-04 20:01 ` Christoph Lameter
2008-03-05 8:22 ` Benjamin Herrenschmidt
2008-03-04 19:20 ` [BUG] 2.6.25-rc3-mm1 kernel bug while running libhugetlbfs Kamalesh Babulal
2008-03-04 19:51 ` Andrew Morton
2008-03-04 22:01 ` Adam Litke
2008-03-05 7:52 ` Kamalesh Babulal
2008-03-05 21:34 ` 2.6.25-rc3-mm1 ppc64 boot hang Badari Pulavarty
2008-03-05 21:54 ` Andrew Morton
2008-03-05 22:35 ` Badari Pulavarty
2008-03-05 23:17 ` Stephen Rothwell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).