我的嵌入式主板上发生了以下内核恐慌。
我使用的是 3.10 内核。
我正在分析内核恐慌的原因。
内核恐慌消息显示PID(735)
.
Feb 22 19:40:28 TEST kenel: CPU: 0 `PID: 735` Comm: cat Not tainted 3.10.73 #2
Feb 22 19:40:28 TEST kernel: Process cat `(pid: 735`, stack limit = 0xee46c238)
PID 是否意味着内核恐慌的杀手?
以下是我的完整内核恐慌消息。
内核恐慌似乎是一个非常难相处的朋友......:(
Feb 22 19:40:28 TEST kernel: Unable to handle kernel NULL pointer dereference at virtual address 0000000c
Feb 22 19:40:28 TEST kernel: pgd = c0004000
Feb 22 19:40:28 TEST kernel: [0000000c] *pgd=00000000
Feb 22 19:40:28 TEST kernel: Internal error: Oops: 17 [#1] PREEMPT SMP ARM
Feb 22 19:40:28 TEST kernel: Modules linked in: m2i_trn g_m2i libcomposite iptable_filter ip_tables smsc95xx usbnet mousedev rh_special_switches pn5xx_i2c mram tsc2007 spicc buzzer cover backlight device_info [last unloaded: spi_fieldbus]
Feb 22 19:40:28 TEST kernel: CPU: 0 PID: 735 Comm: cat Not tainted 3.10.73 #2
Feb 22 19:40:28 TEST kernel: task: ee404000 ti: ee46c000 task.ti: ee46c000
Feb 22 19:40:28 TEST kernel: PC is at set_page_dirty+0x20/0x68
Feb 22 19:40:28 TEST kernel: LR is at set_page_dirty+0xc/0x68
Feb 22 19:40:28 TEST kernel: pc : [<c00a3c50>] lr : [<c00a3c3c>] psr: a0000013
Feb 22 19:40:28 TEST kernel: sp : ee46de48 ip : 0002f9f9 fp : b6ffa000
Feb 22 19:40:28 TEST kernel: r10: ee46dee0 r9 : ee46de84 r8 : b6ffc000
Feb 22 19:40:28 TEST kernel: r7 : c0fd3860 r6 : 00000000 r5 : c0fd3860 r4 : ee3d87ec
Feb 22 19:40:28 TEST kernel: r3 : 00000000 r2 : 40080068 r1 : c0fd3860 r0 : 00000012
Feb 22 19:40:28 TEST kernel: Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Feb 22 19:40:28 TEST kernel: Control: 10c5387d Table: 2eb3c04a DAC: 00000015
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: PC: 0xc00a3bd0:
Feb 22 19:40:28 TEST kernel: 3bd0 e2505000 1a000001 e1a00005 e8bd8038 e375001c e2841048 03a0001a 13a00019
Feb 22 19:40:28 TEST kernel: 3bf0 eb0456e6 eafffff7 e92d4010 e1a04000 eb002f48 e590304c e5933010 e3130c02
Feb 22 19:40:28 TEST kernel: 3c10 08bd8010 e5943000 e3130a02 08bd8010 e1a00004 e3a0100d e8bd4010 eaffdee6
Feb 22 19:40:28 TEST kernel: 3c30 e92d4038 e1a05000 eb002f3a e3500000 0a00000a e5903044 e1a01005 e3a00012
Feb 22 19:40:28 TEST kernel: 3c50 e593400c eb044d0a e59f3034 e1a00005 e3540000 01a04003 e12fff34 e8bd8038
Feb 22 19:40:28 TEST kernel: 3c70 e5953000 e3130010 18bd8038 e1a01005 e3a00004 eb045711 e2700001 33a00000
Feb 22 19:40:28 TEST kernel: 3c90 e8bd8038 c00fd924 e92d4030 e1a04000 e24dd00c eb002f1f e5943000 e1a05000
Feb 22 19:40:28 TEST kernel: 3cb0 e3130001 0a00002b e3500000 0a000003 e590304c e5933010 e3130001 0a000004
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: LR: 0xc00a3bbc:
Feb 22 19:40:28 TEST kernel: 3bbc e92d4038 e1a04002 e5923044 e5933000 e12fff33 e2505000 1a000001 e1a00005
Feb 22 19:40:28 TEST kernel: 3bdc e8bd8038 e375001c e2841048 03a0001a 13a00019 eb0456e6 eafffff7 e92d4010
Feb 22 19:40:28 TEST kernel: 3bfc e1a04000 eb002f48 e590304c e5933010 e3130c02 08bd8010 e5943000 e3130a02
Feb 22 19:40:28 TEST kernel: 3c1c 08bd8010 e1a00004 e3a0100d e8bd4010 eaffdee6 e92d4038 e1a05000 eb002f3a
Feb 22 19:40:28 TEST kernel: 3c3c e3500000 0a00000a e5903044 e1a01005 e3a00012 e593400c eb044d0a e59f3034
Feb 22 19:40:28 TEST kernel: 3c5c e1a00005 e3540000 01a04003 e12fff34 e8bd8038 e5953000 e3130010 18bd8038
Feb 22 19:40:28 TEST kernel: 3c7c e1a01005 e3a00004 eb045711 e2700001 33a00000 e8bd8038 c00fd924 e92d4030
Feb 22 19:40:28 TEST kernel: 3c9c e1a04000 e24dd00c eb002f1f e5943000 e1a05000 e3130001 0a00002b e3500000
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: SP: 0xee46ddc8:
Feb 22 19:40:28 TEST kernel: ddc8 000000a8 0000006d b6f6a000 c105ace0 00000000 ffffffff 0000006d c06c8f40
Feb 22 19:40:28 TEST kernel: dde8 c00a3c50 a0000013 ffffffff ee46de34 b6ffc000 c000dd98 00000012 c0fd3860
Feb 22 19:40:28 TEST kernel: de08 40080068 00000000 ee3d87ec c0fd3860 00000000 c0fd3860 b6ffc000 ee46de84
Feb 22 19:40:28 TEST kernel: de28 ee46dee0 b6ffa000 0002f9f9 ee46de48 c00a3c3c c00a3c50 a0000013 ffffffff
Feb 22 19:40:28 TEST kernel: de48 326c375f ee3d87ec ee3d87e8 c00b8db0 ee46de58 ee785c00 c0f51b1c edef6f60
Feb 22 19:40:28 TEST kernel: de68 ee93edb8 326c375f ee46c000 ee93edb8 b6ffc000 b6ffbfff 60000013 00000000
Feb 22 19:40:28 TEST kernel: de88 fffffffe 00000000 ee46c000 edef6f60 ffffffff ee46dee0 00000000 00000000
Feb 22 19:40:28 TEST kernel: dea8 ee46c000 ee785c40 00000000 c00b98c0 00000000 ee46c000 edef6c60 ee46df08
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R1: 0xc0fd37e0:
Feb 22 19:40:28 TEST kernel: 37e0 40080068 ee913501 000010ea 00000000 00000001 c0fd37d4 c0fd3a34 00000000
Feb 22 19:40:28 TEST kernel: 3800 40080068 ee913501 000010e2 00000000 00000001 c0f94cf4 c0fd3754 00000000
Feb 22 19:40:28 TEST kernel: 3820 40080068 ee913501 000010da 00000000 00000001 c0fd3694 c0fd3734 00000000
Feb 22 19:40:28 TEST kernel: 3840 4002002c ef074d64 00000038 ffffffff 00000001 c0f92af4 c0f8ed94 00000000
Feb 22 19:40:28 TEST kernel: 3860 40080068 ee97a400 000b6ffa 00000000 00000001 c0fbbeb4 c0f91674 00000000
Feb 22 19:40:28 TEST kernel: 3880 4002002c ef074d64 00000033 ffffffff 00000001 c0fa6034 c0f94574 00000000
Feb 22 19:40:28 TEST kernel: 38a0 40000000 00000000 00000002 ffffffff 00000000 c0fc8a14 c0f91514 00000000
Feb 22 19:40:28 TEST kernel: 38c0 40080068 ee913501 00001146 00000000 00000001 c0fd8d54 c0f92d34 00000000
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R4: 0xee3d876c:
Feb 22 19:40:28 TEST kernel: 876c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 878c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 87ac 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 87cc 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 87ec 305b375f 00000000 31af57df 305d375f 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 880c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 882c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: 884c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R5: 0xc0fd37e0:
Feb 22 19:40:28 TEST kernel: 37e0 40080068 ee913501 000010ea 00000000 00000001 c0fd37d4 c0fd3a34 00000000
Feb 22 19:40:28 TEST kernel: 3800 40080068 ee913501 000010e2 00000000 00000001 c0f94cf4 c0fd3754 00000000
Feb 22 19:40:28 TEST kernel: 3820 40080068 ee913501 000010da 00000000 00000001 c0fd3694 c0fd3734 00000000
Feb 22 19:40:28 TEST kernel: 3840 4002002c ef074d64 00000038 ffffffff 00000001 c0f92af4 c0f8ed94 00000000
Feb 22 19:40:28 TEST kernel: 3860 40080068 ee97a400 000b6ffa 00000000 00000001 c0fbbeb4 c0f91674 00000000
Feb 22 19:40:28 TEST kernel: 3880 4002002c ef074d64 00000033 ffffffff 00000001 c0fa6034 c0f94574 00000000
Feb 22 19:40:28 TEST kernel: 38a0 40000000 00000000 00000002 ffffffff 00000000 c0fc8a14 c0f91514 00000000
Feb 22 19:40:28 TEST kernel: 38c0 40080068 ee913501 00001146 00000000 00000001 c0fd8d54 c0f92d34 00000000
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R7: 0xc0fd37e0:
Feb 22 19:40:28 TEST kernel: 37e0 40080068 ee913501 000010ea 00000000 00000001 c0fd37d4 c0fd3a34 00000000
Feb 22 19:40:28 TEST kernel: 3800 40080068 ee913501 000010e2 00000000 00000001 c0f94cf4 c0fd3754 00000000
Feb 22 19:40:28 TEST kernel: 3820 40080068 ee913501 000010da 00000000 00000001 c0fd3694 c0fd3734 00000000
Feb 22 19:40:28 TEST kernel: 3840 4002002c ef074d64 00000038 ffffffff 00000001 c0f92af4 c0f8ed94 00000000
Feb 22 19:40:28 TEST kernel: 3860 40080068 ee97a400 000b6ffa 00000000 00000001 c0fbbeb4 c0f91674 00000000
Feb 22 19:40:28 TEST kernel: 3880 4002002c ef074d64 00000033 ffffffff 00000001 c0fa6034 c0f94574 00000000
Feb 22 19:40:28 TEST kernel: 38a0 40000000 00000000 00000002 ffffffff 00000000 c0fc8a14 c0f91514 00000000
Feb 22 19:40:28 TEST kernel: 38c0 40080068 ee913501 00001146 00000000 00000001 c0fd8d54 c0f92d34 00000000
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R9: 0xee46de04:
Feb 22 19:40:28 TEST kernel: de04 c0fd3860 40080068 00000000 ee3d87ec c0fd3860 00000000 c0fd3860 b6ffc000
Feb 22 19:40:28 TEST kernel: de24 ee46de84 ee46dee0 b6ffa000 0002f9f9 ee46de48 c00a3c3c c00a3c50 a0000013
Feb 22 19:40:28 TEST kernel: de44 ffffffff 326c375f ee3d87ec ee3d87e8 c00b8db0 ee46de58 ee785c00 c0f51b1c
Feb 22 19:40:28 TEST kernel: de64 edef6f60 ee93edb8 326c375f ee46c000 ee93edb8 b6ffc000 b6ffbfff 60000013
Feb 22 19:40:28 TEST kernel: de84 00000000 fffffffe 00000000 ee46c000 edef6f60 ffffffff ee46dee0 00000000
Feb 22 19:40:28 TEST kernel: dea4 00000000 ee46c000 ee785c40 00000000 c00b98c0 00000000 ee46c000 edef6c60
Feb 22 19:40:28 TEST kernel: dec4 ee46df08 ee785c00 ee785c00 ee46c000 c00bf4ec c0f696e0 0025ceb0 ee785c00
Feb 22 19:40:28 TEST kernel: dee4 00000001 00000000 00000000 ffffffff c045ec74 00000000 00000072 00000400
Feb 22 19:40:28 TEST kernel:
Feb 22 19:40:28 TEST kernel: R10: 0xee46de60:
Feb 22 19:40:28 TEST kernel: de60 c0f51b1c edef6f60 ee93edb8 326c375f ee46c000 ee93edb8 b6ffc000 b6ffbfff
Feb 22 19:40:28 TEST kernel: de80 60000013 00000000 fffffffe 00000000 ee46c000 edef6f60 ffffffff ee46dee0
Feb 22 19:40:28 TEST kernel: dea0 00000000 00000000 ee46c000 ee785c40 00000000 c00b98c0 00000000 ee46c000
Feb 22 19:40:28 TEST kernel: dec0 edef6c60 ee46df08 ee785c00 ee785c00 ee46c000 c00bf4ec c0f696e0 0025ceb0
Feb 22 19:40:28 TEST kernel: dee0 ee785c00 00000001 00000000 00000000 ffffffff c045ec74 00000000 00000072
Feb 22 19:40:28 TEST kernel: df00 00000400 ee912000 00000000 c045ec74 00000000 c045e9dc 00000001 c045e7f8
Feb 22 19:40:28 TEST kernel: df20 00000000 c045ec74 ee785c30 ee785c00 00000000 ee404000 ee785c00 c0029360
Feb 22 19:40:28 TEST kernel: df40 ee4042fc c00302a0 00000020 00000001 c0680eb4 00000000 00060006 c004fa88
Feb 22 19:40:28 TEST kernel: Process cat (pid: 735, stack limit = 0xee46c238)
Feb 22 19:40:28 TEST kernel: Stack: (0xee46de48 to 0xee46e000)
Feb 22 19:40:28 TEST kernel: de40: 326c375f ee3d87ec ee3d87e8 c00b8db0 ee46de58 ee785c00
Feb 22 19:40:28 TEST kernel: de60: c0f51b1c edef6f60 ee93edb8 326c375f ee46c000 ee93edb8 b6ffc000 b6ffbfff
Feb 22 19:40:28 TEST kernel: de80: 60000013 00000000 fffffffe 00000000 ee46c000 edef6f60 ffffffff ee46dee0
Feb 22 19:40:28 TEST kernel: dea0: 00000000 00000000 ee46c000 ee785c40 00000000 c00b98c0 00000000 ee46c000
Feb 22 19:40:28 TEST kernel: dec0: edef6c60 ee46df08 ee785c00 ee785c00 ee46c000 c00bf4ec c0f696e0 0025ceb0
Feb 22 19:40:28 TEST kernel: dee0: ee785c00 00000001 00000000 00000000 ffffffff c045ec74 00000000 00000072
Feb 22 19:40:28 TEST kernel: df00: 00000400 ee912000 00000000 c045ec74 00000000 c045e9dc 00000001 c045e7f8
Feb 22 19:40:28 TEST kernel: df20: 00000000 c045ec74 ee785c30 ee785c00 00000000 ee404000 ee785c00 c0029360
Feb 22 19:40:28 TEST kernel: df40: ee4042fc c00302a0 00000020 00000001 c0680eb4 00000000 00060006 c004fa88
Feb 22 19:40:28 TEST kernel: df60: c0680eb4 ef391d40 00000000 ee46c000 000000f8 c000e3e8 ee46c000 00000000
Feb 22 19:40:28 TEST kernel: df80: 00000000 c0030a20 00000000 000700de b6fd9760 b6fd9760 000000f8 c0030aa4
Feb 22 19:40:28 TEST kernel: dfa0: 00000000 c000e240 000700de b6fd9760 00000000 000700ca b6ff84c0 00000000
Feb 22 19:40:28 TEST kernel: dfc0: 000700de b6fd9760 b6fd9760 000000f8 00000002 00000000 00010000 00000000
Feb 22 19:40:28 TEST kernel: dfe0: 000000f8 be8b5474 b6f6afc3 b6f14276 60000030 00000000 00000000 00000000
Feb 22 19:40:28 TEST kernel: [<c00a3c50>] (set_page_dirty+0x20/0x68) from [<c00b8db0>] (unmap_single_vma+0x4d0/0x63c)
Feb 22 19:40:28 TEST kernel: [<c00b8db0>] (unmap_single_vma+0x4d0/0x63c) from [<c00b98c0>] (unmap_vmas+0x54/0x68)
Feb 22 19:40:28 TEST kernel: [<c00b98c0>] (unmap_vmas+0x54/0x68) from [<c00bf4ec>] (exit_mmap+0xd8/0x1f8)
Feb 22 19:40:28 TEST kernel: [<c00bf4ec>] (exit_mmap+0xd8/0x1f8) from [<c0029360>] (mmput+0x48/0xf4)
Feb 22 19:40:28 TEST kernel: [<c0029360>] (mmput+0x48/0xf4) from [<c00302a0>] (do_exit+0x244/0x878)
Feb 22 19:40:28 TEST kernel: [<c00302a0>] (do_exit+0x244/0x878) from [<c0030a20>] (do_group_exit+0x3c/0xb0)
Feb 22 19:40:28 TEST kernel: [<c0030a20>] (do_group_exit+0x3c/0xb0) from [<c0030aa4>] (__wake_up_parent+0x0/0x18)
Feb 22 19:40:28 TEST kernel: Code: 0a00000a e5903044 e1a01005 e3a00012 (e593400c)
Feb 22 19:40:28 TEST kernel: ---[ end trace 28aa0afec355b4f9 ]---
Feb 22 19:40:28 TEST kernel: Fixing recursive fault but reboot is needed!
答案1
当发生panic时,程序cat
正在以PID为735运行,即故障发生在PID为735的进程的上下文中。这并不意味着cat程序做了错误的事情。故障出在内核中,在任何情况下都不应该发生恐慌(除非您真的尝试使用 root 权限)。导致恐慌的错误可能存在于当 cat 程序从某些设备读取或写入某些设备时调用的设备驱动程序中。或者它可能是由完全不相关的中断引起的;所有中断处理程序都在当前正在运行的进程的上下文中运行,即使它们不以任何方式为该进程提供服务。
正如您所注意到的,调试内核恐慌并不是一件容易的事。