免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3307 | 回复: 10
打印 上一主题 下一主题

[内核模块] 2.6.27.8内核在rc.local中添加自定义的启动项,偶尔出现segment fault [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-07 21:33 |只看该作者 |倒序浏览
2.6.27.8内核在rc.local中添加自定义的启动项,开机启动后偶尔出现segment fault,错误地址一般为0xCxxxxxxx地址段,错误一般是内核页操作错误(如do_page_fault),还有schedule while atomic,请问这种错误如何排查?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2012-05-07 21:42 |只看该作者
回复 1# xidianunix
将启动项去掉,等系统完全启动后,通过gdb调试程序。

   

论坛徽章:
0
3 [报告]
发表于 2012-05-07 21:49 |只看该作者
谢谢韩海书香的回复。追问:

说明一下我的启动项:插入3个驱动模块,boa,创建共享内存的进程shm,通过ARM的GPIO加载FPGA(包括应用程序和驱动模块)的进程FPGALOAD。
内核启动后,我尝试反复运行shm和FPGALOAD近200次,均OK;但加载启动项中,启动100次大约有2-3次出现Unable to handle NULL pointer。


论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2012-05-07 23:26 |只看该作者
本帖最后由 瀚海书香 于 2012-05-07 23:27 编辑

回复 3# xidianunix
说明一下我的启动项:插入3个驱动模块,boa,创建共享内存的进程shm,通过ARM的GPIO加载FPGA(包括应用程序和驱动模块)的进程FPGALOAD。
内核启动后,我尝试反复运行shm和FPGALOAD近200次,均OK;但加载启动项中,启动100次大约有2-3次出现Unable to handle NULL pointer。

从你的描述来看,有可能是开启启动项在启动的时候,某些资源没有初始化完成,导致的问题。
你可以在shm之前添加一个shell语言 sleep 几秒钟试试,看看是否这个原因造成的。
   

论坛徽章:
0
5 [报告]
发表于 2012-05-08 22:06 |只看该作者
谢谢瀚海书香的热心回复。

我今天试了一下,结果如下:sleep 5秒,测了100次,出错2次;sleep 8秒,测了100次,目前还没出错。
准备明天再继续测下,如果没有问题,很可能就是你说的原因。

想再跟版主确认一下:sleep就是暂缓脚本的执行,sleep的过程中,其实CPU还在执行系统的初始化相关线程,从而保证初始化完全生效,对吗?

先表示感谢,明天及时通报测试结果。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
6 [报告]
发表于 2012-05-08 22:09 |只看该作者
回复 5# xidianunix
sleep就是暂缓脚本的执行,sleep的过程中,其实CPU还在执行系统的初始化相关线程,从而保证初始化完全生效,对吗?

你的理解基本正确。
sleep可以认为当前任务主动让出cpu,让其他的任务获取cpu执行。

   

论坛徽章:
0
7 [报告]
发表于 2012-05-20 14:04 |只看该作者
瀚海书香 版主:
    测试结果是这样的:在shm之前sleep 5,测试700次,没有错误。
   
    但这几天出现了新的问题:同样的版本(u-boot、linux内核、文件系统、应用程序),加在不同的硬件板子上,2块板子没问题,但4块板子测试几次就出错了,错误跟之前的错误类似。
    所以现在有些糊涂了,不知道是没有找到软件问题的根源,还是硬件板子有问题。麻烦版主再给指点一下,谢谢。

论坛徽章:
0
8 [报告]
发表于 2012-05-20 14:09 |只看该作者
回复 6# 瀚海书香


瀚海书香 版主:
    测试结果是这样的:在shm之前sleep 5,测试700次,没有错误。
   
    但这几天出现了新的问题:同样的版本(u-boot、linux内核、文件系统、应用程序),加在不同的硬件板子上,2块板子没问题,但4块板子测试几次就出错了,错误跟之前的错误类似。
    所以现在有些糊涂了,不知道是没有找到软件问题的根源,还是硬件板子有问题。麻烦版主再给指点一下,谢谢。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
9 [报告]
发表于 2012-05-20 15:29 |只看该作者
回复 8# xidianunix
不知道是没有找到软件问题的根源,还是硬件板子有问题。麻烦版主再给指点一下,谢谢

这个不太好断定,有可能是硬件的问题,也有可能是软件健壮性的问题。建议使用调试工具,调试软件。

BTW:如果硬件是其他厂商提供的,可以让他们提供一些调试工具或者干脆说硬件有问题,让他们调试
   

论坛徽章:
0
10 [报告]
发表于 2012-05-20 16:47 |只看该作者
回复 9# 瀚海书香

谢谢斑竹的回复。

但是很不幸,硬件是我们自己做的板子。自己写的应用程序用gdb测试过了,没发现什么问题。

想再问一下,最后运行的加载FPGA的程序(跟其他网络消息处理线程放在一个进程里)非常耗时,问题也经常出在加载FPGA的过程中或者刚加载完成后不久。
请问这里有没有可能影响健壮性?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP