Kernel Panic的【PID】是Kernel Panic的杀手吗?

Kernel Panic的【PID】是Kernel Panic的杀手吗?

我的嵌入式主板上发生了以下内核恐慌。
我使用的是 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 程序从某些设备读取或写入某些设备时调用的设备驱动程序中。或者它可能是由完全不相关的中断引起的;所有中断处理程序都在当前正在运行的进程的上下文中运行,即使它们不以任何方式为该进程提供服务。

正如您所注意到的,调试内核恐慌并不是一件容易的事。

相关内容