netlink和pcie中断开发,数据接收和发送如何协调

zhru1218 2016-07-01 09:08:41
求助各位大神:
最近在搞一个项目开发。遇到两个中断相互影响的现象。一直阻塞了很久。
具体是:
在应用程序中,通过netlink方式,把用户态数据frame帧(1514字节)下发给内核态(不断地发,while循环)。内核中的netlink接收中断,会将收到的数据包,加入自己开辟的队列里缓存(会有memcpy操作,队列大小为32个),此时并触发一个下行DMA的操作,写PCIE寄存器(如果此时正在发送数据中,则不发送)。在PCIE的中断服务函数中,每当收到一个发送下行结束的中断,再从队列里取数下发DMA操作。
在实际测试过程中,发现队列会满,并且一直死在netlink接收中断中执行加入队列操作,PCIE的中断服务函数根本不会响应,或很长时间得不到响应。这个是怎么回事啊?
如何才能协调好两个中断中,数据接收和发送 ?
...全文
574 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧