免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2497 | 回复: 8
打印 上一主题 下一主题

驱动中中断处理和硬件中断的配合问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-04 16:14 |只看该作者 |倒序浏览
中断有可能可以丢失?具体说,PCIe的MSI中断。目前想做一个很简单的DMA,硬件DMA到内在之后,发一个中断,软件得到中断之后给硬件另一个缓冲区。在软件重新设置缓冲区之前硬件是等待的,这样中断如果丢了就会导致类似死锁的效果。

论坛徽章:
0
2 [报告]
发表于 2009-03-04 21:10 |只看该作者
你看看网卡的dma实现,一般都是一个dma环形队列的。软件设置的时候,dma可以写其他的buf

论坛徽章:
0
3 [报告]
发表于 2009-03-05 20:11 |只看该作者

回复 #2 emmoblin 的帖子

我知道这个。不过和是否环形无关,我想知道的是中断有没有可能丢,如果有可能的话设计上就要想办法了。

论坛徽章:
0
4 [报告]
发表于 2009-03-05 20:42 |只看该作者
LZ想说的是中断触发的丢失

还是中断处理上的丢失?~

论坛徽章:
0
5 [报告]
发表于 2009-03-05 22:57 |只看该作者
我记得中断丢失好像是这种情况把
如果一个中断来了还没调用ack函数的时候又来了一个中断,两个中断就会合成一个,看起来就是丢失了

论坛徽章:
0
6 [报告]
发表于 2009-03-06 00:06 |只看该作者

回复 #4 superfight 的帖子

我说的是前者。

论坛徽章:
0
7 [报告]
发表于 2009-03-06 10:06 |只看该作者
中断触发的丢失在我现在看过的驱动中~

并没有检测机制~  

也就是说这部分是绝对可信任的~     

其实LZ可以让电子工程的人做一个中断触发的检测~   持续触发中断一个星期~ 看看有没有发生过丢失~

我是这样想的~  既然中断触发可丢失的话~  检测中断触发的机制也有可能会丢失~  都是一个几率问题而已~

论坛徽章:
0
8 [报告]
发表于 2009-03-06 11:34 |只看该作者
中断确实会丢失,
情况一般是关中断时间过长或者向我上面说的处理不及时导致几个中断合成一个
包括时钟中断都有可能丢失。
没有检测机制不说明绝对可信任,
而是把怎么检测处理丢失交由中断作者自己解决,
据我所知内核好像没有提供这方面的帮助

论坛徽章:
0
9 [报告]
发表于 2009-03-06 18:48 |只看该作者
我的很简单,就是:
中断->软件处理->通知硬件->有可能再次中断

也就是最多中断一次,一定要软件处理过并通知了硬件才能再次中断。多次来好像会在中断控制器上pending为一次吧?但我现在想知道的是,最多中断一次的情况,在实际应用中有没有可能出现丢失的情况(如电信号不稳定??我也没想到具体的,呵呵)?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP