请教 Unable to handle kernel paging request at virtual address 60519ad0 问题

JUSTACY 2009-09-22 01:55:14
在开发板上运行程序, 程序运行一段时间之后(这个时间不好确定,有时候是几分钟有时候是几个小时)程序就会退出不再执行,通过串口的打印可以看到如下的信息:

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 : [<c0510720>] lr : [<00000010>] 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:

[<bf01e904>] (CMPI_UserCopy+0x0/0x19c [hi3510_vs]) from [<bf027820>] (DRV_VDEC_Ioctl+0x1c/0x24 [hi3510_vs])

[<bf027804>] (DRV_VDEC_Ioctl+0x0/0x24 [hi3510_vs]) from [<c00922f0>] (do_ioctl+0x7c/0x90)

[<c0092274>] (do_ioctl+0x0/0x90) from [<c00925f4>] (vfs_ioctl+0x2f0/0x310)

r7 = 00000011 r6 = BDDFFBB8 r5 = C16501F8 r4 = C1E0F6CC

[<c0092304>] (vfs_ioctl+0x0/0x310) from [<c0092654>] (sys_ioctl+0x40/0x60)

r8 = C0021F64 r7 = 00000036 r6 = C0484806 r5 = FFFFFFF7

r4 = C1E0F6CC

[<c0092614>] (sys_ioctl+0x0/0x60) from [<c0021de0>] (ret_fast_syscall+0x0/0x2c)

r6 = 00000000 r5 = BDDFFD28 r4 = 000E3094

Code: e024249e e2800001 e5d0c000 e59f3044 (e7d3300c)






研究了半天始终没搞明白为什么会出这种问题。不知道是程序的问题还是底层驱动的问题。
请各位帮小弟看看这应该是哪个地方的问题。
...全文
20006 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
JUSTACY 2012-09-05
  • 打赏
  • 举报
回复
你可以用dumpcore跟下看看到底是哪里出问题了。
[Quote=引用 16 楼 的回复:]

你好,我现在也遇到了跟你一样的问题,想问一下你是怎么解决了呢?可以分享一下方法吗?
引用 15 楼 的回复:
应该是驱动的问题我的也是,刚写的nand驱动 编译通过 报这样的错误内核就起不来了

MVF NFC MTD nand Driver 0.5
Unable to handle kernel paging request at virtual address 400e3f30
……
[/Quote]
qinyun188 2012-08-06
  • 打赏
  • 举报
回复
你好,我现在也遇到了跟你一样的问题,想问一下你是怎么解决了呢?可以分享一下方法吗?
[Quote=引用 15 楼 的回复:]
应该是驱动的问题我的也是,刚写的nand驱动 编译通过 报这样的错误内核就起不来了

MVF NFC MTD nand Driver 0.5
Unable to handle kernel paging request at virtual address 400e3f30

……
pgd = 80004000
[400e3f30] *pgd=00000000
Internal e……
[/Quote]
freetime-wxj 2012-07-17
  • 打赏
  • 举报
回复
应该是驱动的问题我的也是,刚写的nand驱动 编译通过 报这样的错误内核就起不来了

MVF NFC MTD nand Driver 0.5
Unable to handle kernel paging request at virtual address 400e3f30

……
pgd = 80004000
[400e3f30] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (3.0.15+ #10)
PC is at fsl_nfc_probe+0x1a8/0x364
LR is at 0x86116a10
pc : [<8031417c>] lr : [<86116a10>] psr: 20000013
sp : 8602de50 ip : 8040bf2c fp : 8602de7c
r10: 80236958 r9 : 00000000 r8 : 00000000
r7 : 00000001 r6 : 860b8800 r5 : 00003f30 r4 : 86116800
r3 : 8040b69c r2 : 400e0000 r1 : 80436dec r0 : 86116c4c
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c79 Table: 80004059 DAC: 00000015
Process swapper (pid: 1, stack limit = 0x8602c2e8)
Stack: (0x8602de50 to 0x8602e000)
de40: 8602de6c 8602de60 860b8808 80436b98
de60: 860b883c 00000000 8040bf48 00000000 8602de8c 8602de80 8020d108 80313fe0
de80: 8602deb4 8602de90 8020bd0c 8020d0f4 00000000 860b8808 8040bf48 860b883c
dea0: 00000000 00000000 8602ded4 8602deb8 8020beac 8020bc80 00000000 8040bf48
dec0: 00000000 8020be18 8602defc 8602ded8 8020ae3c 8020be24 860230f8 860aff90
dee0: 801beb90 8040bf48 80407e00 86206de0 8602df0c 8602df00 8020b9b8 8020ade4
df00: 8602df3c 8602df10 8020b660 8020b9a0 803a1614 8602df20 8040bf48 8602c000
df20: 00000000 00000013 00000000 00000000 8602df64 8602df40 8020c3e4 8020b4e8
df40: 00000000 80414940 8602c000 00000000 00000013 00000000 8602df74 8602df68
df60: 8020d51c 8020c370 8602df84 8602df78 8001a6e8 8020d4dc 8602dfdc 8602df88
df80: 800283ac 8001a6d4 80079cd4 801006b0 8001a6c8 00000000 8602dfbc 313421a8
dfa0: 00000035 00000000 8602dfc4 000001b0 80400b3c 80020470 800204fc 80044c8c
dfc0: 00000013 00000000 00000000 00000000 8602dff4 8602dfe0 800089a4 80028378
dfe0: 00000000 80008928 00000000 8602dff8 80044c8c 80008934 f8e2614f 1b46e5fe
Backtrace:
[<80313fd4>] (fsl_nfc_probe+0x0/0x364) from [<8020d108>] (platform_drv_probe+0x20/0x24)
[<8020d0e8>] (platform_drv_probe+0x0/0x24) from [<8020bd0c>] (driver_probe_device+0x98/0x1a4)
[<8020bc74>] (driver_probe_device+0x0/0x1a4) from [<8020beac>] (__driver_attach+0x94/0x98)
r8:00000000 r7:00000000 r6:860b883c r5:8040bf48 r4:860b8808
r3:00000000


Jianwei887 2010-10-02
  • 打赏
  • 举报
回复
问题:
我在移植linux-2.6.14 到s3c2410时也出现了类似错误,先移植好网卡后,在移植LCD,出错
s3c2410_bwscon value 22111910
s3c2410_bankcon2 value 7ffc
ax88796 extIRQ = 12, IRQtype= 4
Unable to handle kernel paging request at virtual address d1000200
...
pgd = c0004000
[d1000200] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in:
CPU: 0
PC is at ne_probe1+0x44/0x434
LR is at 0xc028ff98
pc : [<c001b9fc>] lr : [<c028ff98>] Not tainted
sp : c03cfef8 ip : c028ff80 fp : c03cff74
r10: c0300130 r9 : 00000000 r8 : 00000000
r7 : c3dfc800 r6 : d1000200 r5 : d1000200 r4 : f0100000
r3 : ffffffff r2 : d1000200 r1 : c3cc0ac0 r0 : c3cc0ac0
Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment kernel
Control: C000717F Table: 30004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc03ce194)
Stack: (0xc03cfef8 to 0xc03d0000)
fee0: ffffffff 00000002
ff00: c3dfc800 ffffffff c03cff58 c03cff18 c013c9bc c013c1a4 0000000a ffffffff
ff20: ffffffff 00000002 3c203800 f0100000 00007ffc 00000000 c3dfc800 00000000
ff40: 00000000 c0300130 c03cff64 c03cff58 f0100000 00007ffc d1000200 c3dfc800
ff60: 00000000 c0300130 c03cffa0 c03cff78 c001bf30 c001b9c8 c0025008 00000001
ff80: 00000000 c0020d48 00000000 00000000 00000000 c03cffbc c03cffa4 c001b854
ffa0: c001bdfc 00000001 00000000 00000000 c03cffd4 c03cffc0 c001b920 c001b820
ffc0: c0020cb8 c03ce000 c03cfff4 c03cffd8 c00260e8 c001b898 00000000 00000000
ffe0: 00000000 00000000 00000000 c03cfff8 c00400fc c0026068 20646c25 25206c66
Backtrace:
[<c001b9b8>] (ne_probe1+0x0/0x434) from [<c001bf30>] (ne_probe+0x144/0x18c)
[<c001bdec>] (ne_probe+0x0/0x18c) from [<c001b854>] (probe_list2+0x44/0x78)
[<c001b810>] (probe_list2+0x0/0x78) from [<c001b920>] (net_olddevs_init+0x98/0xdc)
r6 = 00000000 r5 = 00000000 r4 = 00000001
[<c001b888>] (net_olddevs_init+0x0/0xdc) from [<c00260e8>] (init+0x90/0x214)
r5 = C03CE000 r4 = C0020CB8
[<c0026058>] (init+0x0/0x214) from [<c00400fc>] (do_exit+0x0/0xa70)
r7 = 00000000 r6 = 00000000 r5 = 00000000 r4 = 00000000
Code: 0a0000e3 e3550201 e1a02005 328224f3 (e5d23000)
<0>Kernel panic - not syncing: Attempted to kill init!

分析:
分配虚拟地址时,出现了问题,仔细分析一下include/asm-arm/arch-s3c2410/map.h这个文件,就知道这个文件定义了许多硬件的物理地址和虚拟地址,如果虚拟地址分配时重复,则会导致硬件请求虚拟地址不成功
Unable to handle kernel paging request at virtual address d1000200,

解决:
#define pAX88796_BASE (0x10000000) //physical base address
#define vAX88796_BASE S3C2410_ADDR(0x01400000) //virtual base address
#define AX88796_BASE (vAX88796_BASE + 0x200) //bank2 base address
(使用的是AX88796网卡,与NC2000兼容)
volume_lwh 2010-08-31
  • 打赏
  • 举报
回复
楼主的原因应该是硬件电路的原因引起,很多情况下是外围电路如CPLD或者数据线与地址线焊接不良引起,如果板子是手工焊接,出现此类问题的概率将很大,先排除此类问题,再试试吧
Johnson5的原因是引用了NULL内存,先查查你的驱动,排除错误吧
Johnson5 2010-08-18
  • 打赏
  • 举报
回复
我一开机就出现Unable to handle kernel NULL pointer dereference at virtual address 0000000c

pgd = c0004000
[0000000c] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in:
CPU: 0

Not tainted (2.6.22 #50)
PC is at __call_usermodehelper+0x5c/0x78
LR is at

__init_begin+0x3fff8000/0x30
pc : [<c0048de8>] lr : [<00000000>] psr: 60000013
sp : c03c1f68

ip : 00000000 fp : c03c1f7c
r10: 00000000 r9 : c0048d8c r8 : 00000000
r7 : c03a1960 r6 :

00000000 r5 : 00000000 r4 : fffffffc
r3 : fffffffc r2 : 00000001 r1 : 00004011 r0 : 00000001
Flags:

nZCv IRQs on FIQs on Mode SVC_32 Segment kernel
Control: 0005317f Table: 20004000 DAC:

00000017
Process khelper (pid: 6, stack limit = 0xc03c0260)
Stack: (0xc03c1f68 to 0xc03c2000)
1f60:

c039f9a0 c03c0000 c03c1f9c c03c1f80 c0049484 c0048d9c
1f80: c039f9a8 c03c1fa4

c039f9a0 c03c1fa4 c03c1fd4 c03c1fa0 c0049edc c00493d8
1fa0: c03b0150 00000000 c03b0040

c004d540 c03c1fb0 c03c1fb0 c03c0000 c039f9a0
1fc0: c0049e14 00000000 c03c1ff4 c03c1fd8

c004d214 c0049e24 00000000 00000000
1fe0: 00000000 00000000 00000000 c03c1ff8 c003ca28

c004d1c8 e1a0c00d e92dd810
Backtrace:
[<c0048d8c>] (__call_usermodehelper+0x0/0x78) from

[<c0049484>] (run_workqueue+0xbc/0x148)
r5:c03c0000 r4:c039f9a0
[<c00493c8>]

(run_workqueue+0x0/0x148) from [<c0049edc>] (worker_thread+0xc8/0xdc)
r7:c03c1fa4

r6:c039f9a0 r5:c03c1fa4 r4:c039f9a8
[<c0049e14>] (worker_thread+0x0/0xdc) from [<c004d214>]

(kthread+0x5c/0x94)
r7:00000000 r6:c0049e14 r5:c039f9a0 r4:c03c0000
[<c004d1b8>]

(kthread+0x0/0x94) from [<c003ca28>] (do_exit+0x0/0x7c4)
r6:00000000 r5:00000000

r4:00000000
Code: b5840028 ba000001 e3550000 189da830 (e5940010)
rocherse 2010-08-04
  • 打赏
  • 举报
回复
这位大侠,有没有TLV320AIC3101的驱动啊,我自己写了一个,调试了好久,都没有能够调试通。需要模拟音频信号经过ADC,音效处理,滤波处理,DAC转化,最后输出,发生没有声音,调试了很久都不行。但我从I2S输入,经过音效处理,滤波处理,DAC后输出是有声音的。为什么前面那种方式就输不出声音呢?你要是有这方面的驱动程序,发给我一份吧。我的邮箱是luozb@k-make.com,多谢大侠!
missilery 2009-09-24
  • 打赏
  • 举报
回复
Unable to handle kernel paging request at virtual address
多半是多线程同步没有做好导致的
missilery 2009-09-24
  • 打赏
  • 举报
回复
cat /proc/ksyms
查找地址c0510720(PC)所位于的函数,也可能调用此函数之前就存在无效指针。
JUSTACY 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 missilery 的回复:]
cat /proc/ksyms
查找地址c0510720(PC)所位于的函数,也可能调用此函数之前就存在无效指针。
[/Quote]


2.6.X内核没/proc/ksyms了吧?
csan 2009-09-23
  • 打赏
  • 举报
回复
好奇怪的问题,都20个小时应该没太大问题,重新上电再跑吧
JUSTACY 2009-09-23
  • 打赏
  • 举报
回复
昨天把开发板的flash重新焊了一遍,到现在板子连续跑了有20个小时了,还没有出错。
有点怀疑是硬件电路的问题了……
JUSTACY 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 csan 的回复:]
好奇怪的问题,都20个小时应该没太大问题,重新上电再跑吧
[/Quote]

还在跑着,24个小时了,一切正常。
很可能是flash芯片没有焊好。
希望是这个问题,呵呵。
  • 打赏
  • 举报
回复
Unable to handle kernel paging request at virtual address 60519ad0

驱动问题吧
ShowMan 2009-09-22
  • 打赏
  • 举报
回复
好像是0xc0510720这个地方访问空指针了。。
JUSTACY 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rzsheng 的回复:]
hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt

我怀疑是这几个模块中对硬件的访问造成冲突导致的


[/Quote]

多谢回复,我考虑下这情况。
PS:
hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt

这几个模块是音视频等的驱动。


其中这句:
Process dec_server (pid: 265, stack limit = 0xc100c194)
当中的dec_server是我的程序,pid 265 是程序中的一个线程的id
我怀疑有可能是这个地方,有问题,正在烤机,等待程序再次挂掉,看看到底是那个线程的问题。
rzsheng 2009-09-22
  • 打赏
  • 举报
回复
hi3510_vs pcf8563 hi_sio tlv320 adv7171 hi_i2c ohci_hcd misc_gpio hi_gpio hi3510_wdt

我怀疑是这几个模块中对硬件的访问造成冲突导致的

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧