[VxWorks] vxworks网络接收发送量大的时候很容易死机

wto4tnt   2008-5-27 23:52 楼主
网络接收发送量大的时候很容易死机

3块网络芯片RTL8139,系统vxWorks5.5,多进程应用程序,udp,tcp都有。

1块网卡专门做tcp传送,其他2块都用udp,现在的现象是tcp的先发生阻塞,其他2块也逐步阻塞,阻塞的时候不能接收到数据包,不能ping通,但是vxworks可以发出来。过一段时间后就会造成死机,系统自动重启。

请达人不吝赐教,感激之至!

回复评论 (14)

我以前用vxworks做过千兆网卡传输数据的试验,也没有出现死机的现象。你的数据流量究竟有多大?估计还是你程序的问题
点赞  2008-5-29 10:29
其实我统计的正常流量对于100M的网卡来说非常小,而且平时运行也很正常,mbufShow,ifShow显示的数据都很正常,但是过一段时间(几天,一个星期不等)就 会出现上面的现象。
点赞  2008-5-29 12:52
还是仔细查一下你的程序,看看有没有内存泄漏等问题
点赞  2008-5-29 13:55
谢谢xjfox,已经检查过,没有内存泄露。
点赞  2008-5-29 23:12
我也觉得可能是你的程序的问题,仔细想想是不是某些地方的机制考虑的不健全,另外,你确定重启是因为这个引起的吗?也没有其他的可能性
点赞  2008-5-31 01:26
我觉得可能是程序有问题,造成了你的任务挂起。任务挂起后,该任务没有对硬件的看门狗写入标志,造成了cpu重新启动。
点赞  2008-6-5 16:56
应该是程序问题,没有释放CPU资源?
点赞  2008-6-11 20:25
做好任务优先级的控制和资源的保护、互斥等
点赞  2008-6-14 12:01
你说的问题,我也碰到了。不知道你解决了没有!我是在一个任务中做了TCP、udp,但是当UDP还在SEND的时候,TCP却断了。我感觉应该是协议栈初始配置的问题。通过抓包程序发现,当TCP dead的时候,接受主机一样能收到来自VXWORKS设备的PING包,并且主机也做了正确的回应,只是vxworks设备收不到应当包罢了。WHY?谢谢!!!
点赞  2008-6-15 15:06
谢谢大家的关心。
目前我把原来的tcp的应用改成udp的了,情况良好。程序的框架没有变化,修改的内容有2部分,一是连接的代码去除了,而是原来tcp的send改成了我自己的send_by_udp,用udp分包发送原来的tcp数据,接收的地方在拼起来,调用原来的处理函数处理。原来的程序基本没有修改,至今没有出现用tcp时候出现的问题,应该不是程序的问题,请大家多在系统的方面考虑考虑。
点赞  2008-6-16 13:19
tcp的通讯进程,udp的通讯进程和喂狗的进程是分开的,不会造成喂狗不及时复位。cpu的资源一直正常,都在20%左右。
点赞  2008-6-16 13:25
我也使用4块8139网卡通讯,还没有测试运行,不知道会不会出现上述问题,楼主email多少,交流交流
点赞  2008-6-18 17:03
我的love_burger@126.com
点赞  2008-6-18 17:04
要结帖了,有什么问题大家可以加我msn: szfszf@21cn.com交流。
点赞  2008-6-24 09:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复