TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335x突然经常提示Unable to handle kernel paging request at virtual address?

在运行某些程序时(很简单的程序C或Shell程序),运行久了,会提示

Unable to handle kernel paging request at virtual address e3500000
pgd = cf774000
[e3500000] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in:
CPU: 0 Not tainted (3.2.0 #394)
PC is at do_lookup+0x22c/0x378
LR is at 0x7fff
pc : [<c00d64b8>] lr : [<00007fff>] psr: 20000013
sp : cf6a5dd0 ip : 00000072 fp : cf6a5e14
r10: cf6a5ed8 r9 : cf010ec0 r8 : cf6a4000
r7 : ce8f3818 r6 : c00e0230 r5 : cf6a5e34 r4 : cf6a5e2c
r3 : e3500000 r2 : 00000002 r1 : cf6a5ed8 r0 : c00e0230
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 8f774019 DAC: 00000015
Process sed (pid: 6644, stack limit = 0xcf6a42f0)
Stack: (0xcf6a5dd0 to 0xcf6a6000)
5dc0: c0098e30 c00d56e8 00000007 cf6a5e3c
5de0: cf6a5dfc 00000002 c01d0250 00000000 cf6a5e34 cf077006 cf6a5e2c cf6a4000
5e00: cf6a5ed8 cf077005 cf6a5e74 cf6a5e18 c00d6740 c00d6298 00000000 c00c7e3c
5e20: cf010ec0 c00d44b8 c08724e0 c01d064c cf6a5e4c 60000013 cf6a5e74 0029e101
5e40: 00000003 cf077001 c00cc4a0 cf6a5f60 00000000 cf077000 ffffff9c 00000001
5e60: cf6a4000 cf6a5ed8 cf6a5ecc cf6a5e78 c00d8bb8 c00d6610 cf6a5e8c c00c7628
5e80: cf010ec0 ce914398 43f3c4b2 00000000 cf077005 00000000 ce8f3818 ce8f7cc8
5ea0: 00000011 cf6a5f60 00000001 cf077000 ffffff9c 00000001 cf6a4000 00000000
5ec0: cf6a5f54 cf6a5ed0 c00d8ff8 c00d8b18 00000041 00000007 cf010ec0 ce8f3818
5ee0: 400918e4 bea03430 cf6a5f40 cf010ec0 ce8f3818 ce8f5e58 00000051 00000002
5f00: 00000001 00000000 00000000 00000003 cf6ec6c0 cf6ec6c8 00000000 00080000
5f20: cf6a5f54 cf6a5f30 c00e3d60 00080000 00000000 cf3d8a40 00080000 cf077000
5f40: ffffff9c 00000003 cf6a5f94 cf6a5f58 c00ca3fc c00d8fc8 cf6a5f94 cf6a5f68
5f60: 00080000 00000000 00000024 00000100 bea033b0 400e1080 400abdc8 00000005
5f80: c000f0e8 cf6a4000 cf6a5fa4 cf6a5f98 c00ca4bc c00ca318 00000000 cf6a5fa8
5fa0: c000ee80 c00ca49c bea033b0 400e1080 bea033b0 00080000 400ac960 00000000
5fc0: bea033b0 400e1080 400abdc8 00000005 00000000 00000040 400ac960 400abdc8
5fe0: 000000c3 bea03354 40091521 4009dcdc 60000010 bea033b0 00000000 00000000
[<c00d64b8>] (do_lookup+0x22c/0x378) from [<c00d6740>] (link_path_walk+0x13c/0x7e8)
[<c00d6740>] (link_path_walk+0x13c/0x7e8) from [<c00d8bb8>] (path_openat+0xac/0x3c0)
[<c00d8bb8>] (path_openat+0xac/0x3c0) from [<c00d8ff8>] (do_filp_open+0x3c/0x90)
[<c00d8ff8>] (do_filp_open+0x3c/0x90) from [<c00ca3fc>] (do_sys_open+0xf0/0x184)
[<c00ca3fc>] (do_sys_open+0xf0/0x184) from [<c00ca4bc>] (sys_open+0x2c/0x30)
[<c00ca4bc>] (sys_open+0x2c/0x30) from [<c000ee80>] (ret_fast_syscall+0x0/0x30)
Code: e51b3040 eaffffd6 e5963050 e1a0100a (e5933000)—[ end trace 528770d6af231b1c ]—

保证程序没有问题,因为在其他linux系统(非嵌入式AM335x)中是没有问题的。

内核版本3.2.0,实在是不知道该怎么排查了,请问最有可能的情况是什么?是硬件的原因还是内核原因的可能性大些?

谢谢

Shine:

就一块板子吗,换一块板子试试。另外,看一下是不是DDR不稳定引起的。

hank hank:

回复 Shine:

现在怀疑是NAND FLASH的问题,有可能吗?

yongqing wang:

回复 hank hank:

程序直接加载内存中运行的

你换个板子看看

hank hank:

回复 yongqing wang:

换板子试过了,新的板子不会出现,跑久了(不确定,两周左右?)之后就会出现。
现在能确定这个现象:
如果运行这个脚本,百分之百会出这种问题:
#!/bin/bash

while true
doTest=`cat /home/root/Test`
done

但是如果脚本改成这样,
while true
do#Test=`cat /home/root/Test`
done

就没有问题,请问一下,是否能确定第一个脚本有操作flash所以是flash的问题呢?谢谢

yongqing wang:

回复 hank hank:

刷的频率是是不是太快了?

赞(0)
未经允许不得转载:TI中文支持网 » AM335x突然经常提示Unable to handle kernel paging request at virtual address?
分享到: 更多 (0)