Kernel completely crashes after accessing an unmapped area.
Ricardo
ricardo.ribalda at gmail.com
Wed Nov 19 23:59:02 EST 2008
Hello All:
I am using the paulus tree popwerpc linux kernel for a ppc440 cpu
located in a Virtex5 FPGA.
While developing some drivers (a simple gpio device) I have notice
that if I try to access an unmapped area (an address without any
register/device attached), the system completely crashes... I remember
that doing the same with a ppc400 cpu the system showed a
"Instruction/Data bus error" and continue working.
My question: The ppc440 cannot recover from this types of errors or
is a kernel missing feature/bug?
Thanks and Best regards
[ 24.770976] Oops: Machine check, sig: 7 [#1]
[ 24.773932] PREEMPT Xilinx Virtex440
[ 24.777473] Modules linked in: spidev xilinx_spi spi_bitbang
[ 24.783093] NIP: 00000000 LR: 10000858 CTR: c015ba80
[ 24.788022] REGS: c3ffdf10 TRAP: 0202 Not tainted (2.6.27)
[ 24.793716] MSR: 00000000 <> CR: 22000422 XER: 20000000
[ 24.799077] TASK = c38d7000[2109] 'md.l' THREAD: c33ce000
[ 24.804258] GPR00: a5a5a5a5 bf8bcb40 48026480 4801e000 10000858 22000424 480
[ 24.812552] GPR08: 0002d000 4801e000 00000000 c33ce000 c33ce000 10018ea0 03f
[ 24.820846] GPR16: dbfa3fff 00000000 00000000 00000000 00000000 00000000 100
[ 24.829140] GPR24: 4800e454 bf8bce00 00000002 bf8bce14 00000000 4802cce0 0ff
[ 24.837614] NIP [00000000] 0x0
[ 24.840634] LR [10000858] 0x10000858
[ 24.844174] Call Trace:
[ 24.846594] Instruction dump:
[ 24.849532] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 24.857220] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 24.864915] ---[ end trace 90dba81f5381e59d ]---
[ 24.869505] Oops: Machine check, sig: 7 [#2]
[ 24.873722] PREEMPT Xilinx Virtex440
[ 24.877265] Modules linked in: spidev xilinx_spi spi_bitbang
[ 24.882883] NIP: 00000000 LR: c000da24 CTR: 00018486
[ 24.887812] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 24.894199] MSR: 00000000 <> CR: 44040428 XER: 00000000
[ 24.899559] TASK = c38d7000[2109] 'md.l' THREAD: c33ce000
[ 24.904740] GPR00: 08000000 c3ffdd00 c38d7000 c3ffdd10 00000001 00000000 000
[ 24.913035] GPR08: 00000034 c000da24 00021002 c000a150 c38d7208 10018ea0 03f
[ 24.921329] GPR16: dbfa3fff 00000000 00000000 00000000 00000000 00000000 100
[ 24.929624] GPR24: c3ffc034 00000001 c030a798 c030a7a4 c3ffc000 c030a89c c02
[ 24.938093] NIP [00000000] 0x0
[ 24.941133] LR [c000da24] ret_from_except+0x0/0x18
[ 24.945866] Call Trace:
[ 24.948286] Instruction dump:
[ 24.951223] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 24.958913] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 24.966604] ---[ end trace 90dba81f5381e59d ]---
[ 24.971183] Fixing recursive fault but reboot is needed!
[ 24.976476] Oops: Machine check, sig: 7 [#3]
[ 24.980685] PREEMPT Xilinx Virtex440
[ 24.984228] Modules linked in: spidev xilinx_spi spi_bitbang
[ 24.989847] NIP: 00000000 LR: c000da24 CTR: c0029e78
[ 24.994775] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 25.001163] MSR: 00000000 <> CR: 442f2082 XER: 00000000
[ 25.006523] TASK = c3822400[3] 'ksoftirqd/0' THREAD: c382c000
[ 25.012049] GPR00: 00000000 c382de80 c3822400 c382de90 c38d7000 c0302c70 000
[ 25.020344] GPR08: 00000098 c000da24 00021002 c0003ee4 c3822608 8fdd0dff c03
[ 25.028638] GPR16: c0302c40 c3822558 c382c034 c02e0000 c0302c40 c0300000 c03
[ 25.036933] GPR24: c0040000 c02e506c c3285ba0 c382c000 c02e24b0 00000002 c38
[ 25.045401] NIP [00000000] 0x0
[ 25.048430] LR [c000da24] ret_from_except+0x0/0x18
[ 25.053175] Call Trace:
[ 25.055599] [c382de80] [c3822400] 0xc3822400 (unreliable)
[ 25.060967] [c382df40] [c0006310] __switch_to+0x54/0x78
[ 25.066146] [c382df60] [c02450c0] schedule+0x194/0x3ac
[ 25.071243] [c382dfb0] [c0033098] ksoftirqd+0x108/0x194
[ 25.076436] [c382dfd0] [c0045504] kthread+0x48/0x84
[ 25.081264] [c382dff0] [c000d1a0] kernel_thread+0x4c/0x68
[ 25.086612] Instruction dump:
[ 25.089549] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.097239] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.104931] ---[ end trace 90dba81f5381e59d ]---
[ 25.109512] note: ksoftirqd/0[3] exited with preempt_count 2
[ 25.115136] Oops: Machine check, sig: 7 [#4]
[ 25.119357] PREEMPT Xilinx Virtex440
[ 25.122900] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.128519] NIP: 00000000 LR: c000da24 CTR: 00018486
[ 25.133447] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 25.139835] MSR: 00000000 <> CR: 44242022 XER: 20000000
[ 25.145194] TASK = c3822400[3] 'ksoftirqd/0' THREAD: c382c000
[ 25.150721] GPR00: c003077c c3ffddc0 c3822400 c3ffddd0 00000000 00000000 000
[ 25.159016] GPR08: 00000036 c000da24 00021002 c0003ee4 c3822608 8fdd0dff c03
[ 25.167310] GPR16: c0302c40 c3822558 c382c034 c02e0000 c0302c40 c0300000 c03
[ 25.175605] GPR24: c38224e0 c38224f4 c3822c00 c3ffdf10 c3ffc000 c38224e0 c38
[ 25.184073] NIP [00000000] 0x0
[ 25.187102] LR [c000da24] ret_from_except+0x0/0x18
[ 25.191847] Call Trace:
[ 25.194266] Instruction dump:
[ 25.197204] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.204893] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.212585] ---[ end trace 90dba81f5381e59d ]---
[ 25.217164] Fixing recursive fault but reboot is needed!
[ 25.222437] BUG: scheduling while atomic: ksoftirqd/0/3/0x00000003
[ 25.228567] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.234184] Call Trace:
[ 25.236610] Oops: Machine check, sig: 7 [#5]
[ 25.240836] PREEMPT Xilinx Virtex440
[ 25.244378] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.249997] NIP: 00000000 LR: c000da24 CTR: c0029e78
[ 25.254925] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 25.261313] MSR: 00000000 <> CR: 442f2022 XER: 00000000
[ 25.266673] TASK = c3822000[4] 'events/0' THREAD: c382e000
[ 25.271940] GPR00: 00000000 c382fe60 c3822000 c382fe70 c3822400 c0302c70 000
[ 25.280235] GPR08: 00000131 c000da24 00021002 c0003ee4 c3822208 8fdd0dff c03
[ 25.288529] GPR16: c0302c40 c3822158 c382e034 c02e0000 c0302c40 c0300000 c03
[ 25.296824] GPR24: c0040000 c02e506c c3285ba0 c382e000 c3842000 00000002 c38
[ 25.305293] NIP [00000000] 0x0
[ 25.308321] LR [c000da24] ret_from_except+0x0/0x18
[ 25.313066] Call Trace:
[ 25.315509] [c382fe60] [c016374c] n_tty_receive_buf+0x2b8/0xf68 (unreliable)
[ 25.322492] [c382ff20] [c0006310] __switch_to+0x54/0x78
[ 25.327674] [c382ff40] [c02450c0] schedule+0x194/0x3ac
[ 25.332774] [c382ff90] [c0041684] worker_thread+0x9c/0xd0
[ 25.338130] [c382ffd0] [c0045504] kthread+0x48/0x84
[ 25.342968] [c382fff0] [c000d1a0] kernel_thread+0x4c/0x68
[ 25.348318] Instruction dump:
[ 25.351255] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.358945] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.366636] ---[ end trace 90dba81f5381e59d ]---
[ 25.371217] note: events/0[4] exited with preempt_count 2
[ 25.376577] Oops: Machine check, sig: 7 [#6]
[ 25.380804] PREEMPT Xilinx Virtex440
[ 25.384346] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.389965] NIP: 00000000 LR: c000da24 CTR: 00018486
[ 25.394893] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 25.401281] MSR: 00000000 <> CR: 44242022 XER: 20000000
[ 25.406641] TASK = c3822000[4] 'events/0' THREAD: c382e000
[ 25.411908] GPR00: c003077c c3ffddc0 c3822000 c3ffddd0 00000000 00000000 000
[ 25.420203] GPR08: 00000036 c000da24 00021002 c0003ee4 c3822208 8fdd0dff c03
[ 25.428497] GPR16: c0302c40 c3822158 c382e034 c02e0000 c0302c40 c0300000 c03
[ 25.436792] GPR24: c38220e0 c38220f4 c3822c00 c3ffdf10 c3ffc000 c38220e0 c38
[ 25.445261] NIP [00000000] 0x0
[ 25.448289] LR [c000da24] ret_from_except+0x0/0x18
[ 25.453034] Call Trace:
[ 25.455454] Instruction dump:
[ 25.458391] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.466081] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.473772] ---[ end trace 90dba81f5381e59d ]---
[ 25.478351] Fixing recursive fault but reboot is needed!
[ 25.483623] BUG: scheduling while atomic: events/0/4/0x00000003
[ 25.489495] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.495111] Call Trace:
[ 25.497540] Oops: Machine check, sig: 7 [#7]
[ 25.501764] PREEMPT Xilinx Virtex440
[ 25.505306] Modules linked in: spidev xilinx_spi spi_bitbang
[ 25.510925] NIP: 00000000 LR: c000da24 CTR: c0026934
[ 25.515853] REGS: c3ffdf10 TRAP: 0202 Tainted: G D (2.6.27)
[ 25.522241] MSR: 00000000 <> CR: 442f2022 XER: 00000000
[ 25.527601] TASK = c02e24b0[0] 'swapper' THREAD: c02fa000
[ 25.532782] GPR00: 00000000 c02fbe50 c02e24b0 c02fbe60 c3822000 c3822030 000
[ 25.541077] GPR08: 00000000 c000da24 00021002 c0003ee4 c02e26b8 8fdd0dff c03
[ 25.549371] GPR16: c0302c40 c02e2608 c02fa034 00000000 c0302c40 c0300000 c03
[ 25.557665] GPR24: 00000000 03ff8ca4 c3285ba0 c02fa000 c3822000 00000002 c38
[ 25.566134] NIP [00000000] 0x0
[ 25.569163] LR [c000da24] ret_from_except+0x0/0x18
[ 25.573908] Call Trace:
[ 25.576334] [c02fbe50] [c003327c] __do_softirq+0x78/0xe4 (unreliable)
[ 25.582728] [c02fbf10] [c0006310] __switch_to+0x54/0x78
[ 25.587911] [c02fbf30] [c02450c0] schedule+0x194/0x3ac
[ 25.593011] [c02fbf80] [c0006cac] cpu_idle+0xcc/0xe8
[ 25.597940] [c02fbfa0] [c0247474] __got2_end+0x7c/0x90
[ 25.603036] [c02fbfc0] [c02bc804] start_kernel+0x238/0x2b8
[ 25.608475] [c02fbff0] [c00001e8] skpinv+0x190/0x1cc
[ 25.613393] Instruction dump:
[ 25.616330] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.624020] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 25.631712] ---[ end trace 90dba81f5381e59d ]---
[ 25.636293] Kernel panic - not syncing: Attempted to kill the idle task!
[ 25.642945] Rebooting in 180 seconds..Oops: Exception in kernel mode, sig: 1]
[ 205.666054] PREEMPT Xilinx Virtex440
[ 205.669593] Modules linked in: spidev xilinx_spi spi_bitbang
[ 205.675213] NIP: fffffffc LR: c000c0d8 CTR: c001593c
[ 205.680144] REGS: c3ffdd60 TRAP: 0700 Tainted: G D (2.6.27)
[ 205.686528] MSR: 00000000 <> CR: 222f2088 XER: 20000000
[ 205.691887] TASK = c02e24b0[0] 'swapper' THREAD: c02fa000
[ 205.697069] GPR00: 30000000 c3ffde10 c02e24b0 00000000 0000002e 00000029 c01
[ 205.705363] GPR08: 00000030 c0300000 0000462d c0300000 842f2042 8fdd0dff c03
[ 205.713658] GPR16: c0302c40 c02e2608 c02fa034 00000000 c0302c40 c0300000 c03
[ 205.721952] GPR24: 00000000 03ff8ca4 00000007 c3ffdf10 0002bf20 00000001 c03
[ 205.730426] NIP [fffffffc] 0xfffffffc
[ 205.734058] LR [c000c0d8] machine_restart+0x34/0x48
[ 205.738886] Call Trace:
[ 205.741306] Instruction dump:
[ 205.744244] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 205.751932] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 205.759627] ---[ end trace 90dba81f5381e59d ]---
[ 205.764206] Kernel panic - not syncing: Attempted to kill the idle task!
[ 205.770857] Rebooting in 180 seconds..Oops: Exception in kernel mode, sig: 1]
[ 385.793958] PREEMPT Xilinx Virtex440
[ 385.797497] Modules linked in: spidev xilinx_spi spi_bitbang
[ 385.803117] NIP: fffffffc LR: c000c0d8 CTR: c001593c
[ 385.808048] REGS: c3ffdae0 TRAP: 0700 Tainted: G D (2.6.27)
[ 385.814432] MSR: 00000000 <> CR: 222f2088 XER: 20000000
[ 385.819791] TASK = c02e24b0[0] 'swapper' THREAD: c02fa000
[ 385.824973] GPR00: 30000000 c3ffdb90 c02e24b0 00000000 0000002e 00000029 c01
[ 385.833267] GPR08: 00000030 c0300000 00004b67 c0300000 842f2042 8fdd0dff c03
[ 385.841561] GPR16: c0302c40 c02e2608 c02fa034 00000000 c0302c40 c0300000 c03
[ 385.849856] GPR24: 00000000 03ff8ca4 0000000b c3ffdd60 0002bf20 00000001 c03
[ 385.858330] NIP [fffffffc] 0xfffffffc
[ 385.861960] LR [c000c0d8] machine_restart+0x34/0x48
[ 385.866790] Call Trace:
[ 385.869209] Instruction dump:
[ 385.872148] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 385.879836] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX X
[ 385.887531] ---[ end trace 90dba81f5381e59d ]---
[ 385.892109] Kernel panic - not syncing: Attempted to kill the idle task!
[ 385.898761] Rebooting in 180 seconds..Oops: Exception in kernel mode, sig: 1]
--
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/
More information about the Linuxppc-dev
mailing list