Chinaunix

标题: netlink和pcie中断开发,数据接收和发送如何协调 [打印本页]

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




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2