错误:workQPanic: Kernel work queue overflow ??

jackgongbuaa   2009-1-19 09:19 楼主
我的环境是mpc8245 + vxworks5.5.2板子上有PCI网卡和PCI-USB卡。配置好系统引导启动后在串口输出interrupt: panic: netJobAdd: ring buffer overflow!  workQPanic: Kernel work queue overflow。不知是什么引起??

回复评论 (7)

workQPanic: Kernel work queue overflow
work queue overflow 一般来说是应为不停有中断上报并且不停的向kernel queue中添加任务(函数),由于kernel的work queue是一个静态分配的queue,最终由于不能及时清空而overflow。从你的简短的error中能看出netJobAdd是由中断上报的,而且一直有类似的中断上报,你得查查这个中断上报的原因。~
点赞  2009-1-20 17:19
路过,学习。
等待高手指教.
点赞  2009-1-20 18:36
中断溢出了
看一下是不是不停地在进入中断导致中断嵌套之类的,查一下是不是ISR中没有清中断标志之类的错误引起的
点赞  2009-1-20 20:43
当网卡有很多中断产生,通过netAddtoJob函数要将报文通过消息队列送到协议栈,一旦消息队列快满时就会打印“workQPanic: Kernel work queue overflow ”这些信息,一旦停止攻击就会正常。这属于正常现象。当然你的收包程序如果适当修改就会避免打印这些东西了。
点赞  2009-2-6 13:33
楼上只说对了部分 ,出现这种提示肯定是不正常的,它标志着已经出现了网络数据包的丢失.  原因呢,上面几位基本都说了 ,   应该是网络接口在引导时,由于bootrom中只初始化了基本功能,所以网络性能较低,如果在引导过程中外界有大量数据进入你的目标机,就有可能出现这种错误.   在进入系统后,vxworks重新配置网络,应该就好了 .
点赞  2009-2-14 00:25
应该是中断比较多,或者你在中断中调用了太多系统函数。

你可以修改一下驱动,连续来的包可以考虑只调用一次netJobAdd,但实现起来比较麻烦一些。
点赞  2009-2-20 17:16
这样的情况通常都是中断出了问题
中断没能正常处理 频繁的响应中断耗费了太多的时间 或者是你在中断中加入了太多的打印信息
点赞  2009-3-22 19:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复