一个内核崩溃的问题,求解
dmesg信息如下[ 7815.392000] CPU 2 Unable to handle kernel paging request at virtual address 0000000000000038, epc == ffffffffc0285ac8, ra == ffffffffc0285ac8
[ 7815.392000] Oops[#13]:
[ 7815.392000] Cpu 2
[ 7815.392000] $ 0 : 0000000000000000 000000001000fce0 0000000000000000 98000000f137e980
[ 7815.392000] $ 4 : 98000000f137f080 9800000002aa50c8 98000000f137e980 ffffffff805fdca4
[ 7815.392000] $ 8 : 9800000006c0e1b8 98000000f137f394 0000000000000020 0000000000000000
[ 7815.392000] $12 : 0000000000000000 ffffffff80305d5c ffffffff804450d0 0000000000000080
[ 7815.392000] $16 : 000000000056f560 98000000f137f380 ffffffff80323ffc 000000000056f574
[ 7815.392000] $20 : 000000000056f560 000000007fb6d864 0000000000000001 000000002c1f5828
[ 7815.392000] $24 : 0000000000000020 ffffffff8059fa34
[ 7815.392000] $28 : 98000000f0f30000 98000000f0f33dc0 000000007fb68790 ffffffffc0285ac8
[ 7815.392000] Hi : 0000000000000000
[ 7815.392000] Lo : 0000000000d310c8
[ 7815.392000] epc : ffffffffc0285ac8 $L208+0x24/0x78
[ 7815.392000] Tainted: G D
[ 7815.392000] ra : ffffffffc0285ac8 $L208+0x24/0x78
[ 7815.392000] Status: 1000fce3 KX SX UX KERNEL EXL IE
[ 7815.392000] Cause : 10000008
[ 7815.392000] BadVA : 0000000000000038
[ 7815.392000] PrId: 00006305 (ICT Loongson-3A5)
[ 7815.392000] Modules linked in: vdriver fuse sunrpc ipv6 snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm snd_page_alloc snd_timer snd soundcore
[ 7815.392000] Process KT-MAX-linux (pid: 11437, threadinfo=98000000f0f30000, task=98000000f0ad4a98, tls=000000002acfb180)
[ 7815.392000] Stack : 0000000000000000 0000000000000000 98000000f1324fc0 0000000000000000
[ 7815.392000] 98000000f1324fc0 0000000000000008 0000000000000000 ffffffffc0045609
[ 7815.392000] 000000000056f560 000000007fb6d864 0000000000000001 000000002c1f5828
[ 7815.392000] 000000007fb68790 ffffffff80445208 0000000000000000 ffffffff81c40000
[ 7815.392000] 9800000000000000 ffffffff803a2df8 0000000000000000 0000000031b1b4f8
[ 7815.392000] ffffffff804450d0 0000000000440000 000000007fb69a78 0000000000440000
[ 7815.392000] 0000000000000000 000000007fb6e26c 000000007fb6cc4c 000000007fb6d864
[ 7815.392000] 0000000000000001 ffffffff80303fd8 0000000000000000 0000000000000000
[ 7815.392000] 0000000000000fd6 0000000000000001 0000000000000008 ffffffffc0045609
[ 7815.392000] 000000000056f560 0000000000000000 000000002c22e590 000000007fb687fc
[ 7815.392000] ...
[ 7815.392000] Call Trace:
[ 7815.392000] [<ffffffffc0285ac8>] $L208+0x24/0x78
[ 7815.392000]
[ 7815.392000]
[ 7815.392000] Code: 6442dce40040f8090000202d <8c450038> dc4400108e2600003c02805f64425ac00040f809
0000000000000038这种类型的错误一般是空指针错误。他下空指针去当结构体访问他的成员。
可以排查一下[<ffffffffc0285ac8>] $L208+0x24/0x78 这里究竟载访问那个结构体。
然后排查一下代码是否有并发问题,或加点信息打印一下。 呵呵,自己写的vdriver模块,走查下代码吧。。。 把CONFIG_KALLSYMS宏打开吧, 可以显示挂掉的具体函数!
页:
[1]