今天编写vxworks应用程序,调试板卡结果出现interrupt: panic: netJobAdd: ring buffer overflow! workQPanic: Kernel work queue overflow。
然后板卡重启。
看到网上有相关的回复
workQPanic: Kernel work queue overflow
work queue overflow 一般来说是应为不停有中断上报并且不停的向kernel queue中添加任务(函数),由于kernel的work queue是一个静态分配的queue,最终由于不能及时清空而overflow。从你的简短的error中能看出netJobAdd是由中断上报的,而且一直有类似的中断上报,你得查查这个中断上报的原因。~
我又分析了驱动,发现我没有什么要修改的。
然后我windows又重新下了一个tcp测试工具,测试就没问题
抓包分析看两个tcp测试工具发包情况不一样的
一个是一下发很多数据,而另一个是断断续续的发数据,所以不会出现重启的现象
本文探讨了在使用VXWORKS开发应用程序时遇到内核工作队列溢出的问题,通过分析驱动代码和使用Windows下的TCP测试工具进行对比测试,最终定位到中断上报频率过高导致的问题,并通过调整代码逻辑解决。

4141

被折叠的 条评论
为什么被折叠?



