yv9200 发表于 2014-11-24 15:30

一个内核崩溃的问题,求解

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

Tinnal 发表于 2014-11-25 00:10

0000000000000038这种类型的错误一般是空指针错误。他下空指针去当结构体访问他的成员。
可以排查一下[<ffffffffc0285ac8>] $L208+0x24/0x78 这里究竟载访问那个结构体。
然后排查一下代码是否有并发问题,或加点信息打印一下。

humjb_1983 发表于 2014-11-25 14:32

呵呵,自己写的vdriver模块,走查下代码吧。。。

destan19 发表于 2014-11-25 21:11

把CONFIG_KALLSYMS宏打开吧, 可以显示挂掉的具体函数!
页: [1]
查看完整版本: 一个内核崩溃的问题,求解