当前位置: 技术问答>linux和unix
请教 Unable to handle kernel paging request at virtual address 60519ad0 问题
来源: 互联网 发布时间:2017-03-13
本文导语: 在开发板上运行程序, 程序运行一段时间之后(这个时间不好确定,有时候是几分钟有时候是几个小时)程序就会退出不再执行,通过串口的打印可以看到如下的信息: Unable to handle kernel paging request at virtual a...
在开发板上运行程序, 程序运行一段时间之后(这个时间不好确定,有时候是几分钟有时候是几个小时)程序就会退出不再执行,通过串口的打印可以看到如下的信息:
Unable to handle kernel paging request at virtual address 60519ad0
pgd = c1e60000
[60519ad0] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in: hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt
CPU: 0
PC is at 0xc0510720
LR is at 0x10
pc : [] lr : [] Not tainted
sp : c100de64 ip : 00000000 fp : c100df24
r10: 00000000 r9 : c16501f8 r8 : 00000003
r7 : 00000048 r6 : bf000000 r5 : c100de70 r4 : 00000000
r3 : 60519ad0 r2 : 00000010 r1 : c100de70 r0 : bddffbb8
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 5317F Table: 61E60000 DAC: 00000015
Process dec_server (pid: 265, stack limit = 0xc100c194)
Stack: (0xc100de64 to 0xc100e000)
de60: bddffbb8 c100de7c c0505790 bf027428 c100de7c c1e0f6cc 00000000
de80: 00000001 00000000 00000005 00000160 00000120 00000000 00000000 626c6100
dea0: 62732100 00000000 00000300 00000300 00000000 00000001 bddffc00 00000000
dec0: 00000001 c1e8ad00 c100df14 c100ded8 c01f5c70 c0037238 c1ee89b4 00000f30
dee0: c1ee8abc 98c88520 0000111a 001cb213 00000002 c100c000 c100df18 c1e0f6cc
df00: ffffffe7 c0484806 bddffbb8 00000000 c100c000 000c9104 c100df38 c100df28
df20: bf027820 bf01e914 bf027418 c100df58 c100df3c c00922f0 bf027814 c1e0f6cc
df40: c16501f8 bddffbb8 00000011 c100df84 c100df5c c00925f4 c0092284 c007e544
df60: c0037238 c1e0f6cc fffffff7 c0484806 00000036 c0021f64 c100dfa4 c100df88
df80: c0092654 c0092314 00000001 000e3094 bddffd28 00000000 00000000 c100dfa8
dfa0: c0021de0 c0092624 000e3094 c01f5610 00000011 c0484806 bddffbb8 00000001
dfc0: 000e3094 bddffd28 00000000 000002a0 bddffc00 0016ad3c 000c9104 00000000
dfe0: 00000011 bddffba0 0009c8e8 0009c8b0 a0000010 00000011 0606e306 e30606e3
Backtrace:
[] (CMPI_UserCopy+0x0/0x19c [hi3510_vs]) from [] (DRV_VDEC_Ioctl+0x1c/0x24 [hi3510_vs])
[] (DRV_VDEC_Ioctl+0x0/0x24 [hi3510_vs]) from [] (do_ioctl+0x7c/0x90)
[] (do_ioctl+0x0/0x90) from [] (vfs_ioctl+0x2f0/0x310)
r7 = 00000011 r6 = BDDFFBB8 r5 = C16501F8 r4 = C1E0F6CC
[] (vfs_ioctl+0x0/0x310) from [] (sys_ioctl+0x40/0x60)
r8 = C0021F64 r7 = 00000036 r6 = C0484806 r5 = FFFFFFF7
r4 = C1E0F6CC
[] (sys_ioctl+0x0/0x60) from [] (ret_fast_syscall+0x0/0x2c)
r6 = 00000000 r5 = BDDFFD28 r4 = 000E3094
Code: e024249e e2800001 e5d0c000 e59f3044 (e7d3300c)
研究了半天始终没搞明白为什么会出这种问题。不知道是程序的问题还是底层驱动的问题。
请各位帮小弟看看这应该是哪个地方的问题。
Unable to handle kernel paging request at virtual address 60519ad0
pgd = c1e60000
[60519ad0] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in: hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt
CPU: 0
PC is at 0xc0510720
LR is at 0x10
pc : [] lr : [] Not tainted
sp : c100de64 ip : 00000000 fp : c100df24
r10: 00000000 r9 : c16501f8 r8 : 00000003
r7 : 00000048 r6 : bf000000 r5 : c100de70 r4 : 00000000
r3 : 60519ad0 r2 : 00000010 r1 : c100de70 r0 : bddffbb8
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 5317F Table: 61E60000 DAC: 00000015
Process dec_server (pid: 265, stack limit = 0xc100c194)
Stack: (0xc100de64 to 0xc100e000)
de60: bddffbb8 c100de7c c0505790 bf027428 c100de7c c1e0f6cc 00000000
de80: 00000001 00000000 00000005 00000160 00000120 00000000 00000000 626c6100
dea0: 62732100 00000000 00000300 00000300 00000000 00000001 bddffc00 00000000
dec0: 00000001 c1e8ad00 c100df14 c100ded8 c01f5c70 c0037238 c1ee89b4 00000f30
dee0: c1ee8abc 98c88520 0000111a 001cb213 00000002 c100c000 c100df18 c1e0f6cc
df00: ffffffe7 c0484806 bddffbb8 00000000 c100c000 000c9104 c100df38 c100df28
df20: bf027820 bf01e914 bf027418 c100df58 c100df3c c00922f0 bf027814 c1e0f6cc
df40: c16501f8 bddffbb8 00000011 c100df84 c100df5c c00925f4 c0092284 c007e544
df60: c0037238 c1e0f6cc fffffff7 c0484806 00000036 c0021f64 c100dfa4 c100df88
df80: c0092654 c0092314 00000001 000e3094 bddffd28 00000000 00000000 c100dfa8
dfa0: c0021de0 c0092624 000e3094 c01f5610 00000011 c0484806 bddffbb8 00000001
dfc0: 000e3094 bddffd28 00000000 000002a0 bddffc00 0016ad3c 000c9104 00000000
dfe0: 00000011 bddffba0 0009c8e8 0009c8b0 a0000010 00000011 0606e306 e30606e3
Backtrace:
[] (CMPI_UserCopy+0x0/0x19c [hi3510_vs]) from [] (DRV_VDEC_Ioctl+0x1c/0x24 [hi3510_vs])
[] (DRV_VDEC_Ioctl+0x0/0x24 [hi3510_vs]) from [] (do_ioctl+0x7c/0x90)
[] (do_ioctl+0x0/0x90) from [] (vfs_ioctl+0x2f0/0x310)
r7 = 00000011 r6 = BDDFFBB8 r5 = C16501F8 r4 = C1E0F6CC
[] (vfs_ioctl+0x0/0x310) from [] (sys_ioctl+0x40/0x60)
r8 = C0021F64 r7 = 00000036 r6 = C0484806 r5 = FFFFFFF7
r4 = C1E0F6CC
[] (sys_ioctl+0x0/0x60) from [] (ret_fast_syscall+0x0/0x2c)
r6 = 00000000 r5 = BDDFFD28 r4 = 000E3094
Code: e024249e e2800001 e5d0c000 e59f3044 (e7d3300c)
研究了半天始终没搞明白为什么会出这种问题。不知道是程序的问题还是底层驱动的问题。
请各位帮小弟看看这应该是哪个地方的问题。
|
hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt
我怀疑是这几个模块中对硬件的访问造成冲突导致的
我怀疑是这几个模块中对硬件的访问造成冲突导致的
|
好像是0xc0510720这个地方访问空指针了。。
|
好奇怪的问题,都20个小时应该没太大问题,重新上电再跑吧
|
Unable to handle kernel paging request at virtual address 60519ad0
驱动问题吧
驱动问题吧
|
cat /proc/ksyms
查找地址c0510720(PC)所位于的函数,也可能调用此函数之前就存在无效指针。
查找地址c0510720(PC)所位于的函数,也可能调用此函数之前就存在无效指针。
|
Unable to handle kernel paging request at virtual address
多半是多线程同步没有做好导致的
多半是多线程同步没有做好导致的