驱动中中断处理和硬件中断的配合问题

发布于 2022-09-18 19:15:27 字数 113 浏览 14 评论 0

中断有可能可以丢失?具体说,PCIe的MSI中断。目前想做一个很简单的DMA,硬件DMA到内在之后,发一个中断,软件得到中断之后给硬件另一个缓冲区。在软件重新设置缓冲区之前硬件是等待的,这样中断如果丢了就会导致类似死锁的效果。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

戴着白色围巾的女孩 2022-09-25 19:15:27

你看看网卡的dma实现,一般都是一个dma环形队列的。软件设置的时候,dma可以写其他的buf

月寒剑心 2022-09-25 19:15:27

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

花伊自在美 2022-09-25 19:15:27

LZ想说的是中断触发的丢失

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

鸢与 2022-09-25 19:15:27

我记得中断丢失好像是这种情况把
如果一个中断来了还没调用ack函数的时候又来了一个中断,两个中断就会合成一个,看起来就是丢失了

山川志 2022-09-25 19:15:27

我说的是前者。

(り薆情海 2022-09-25 19:15:27

中断触发的丢失在我现在看过的驱动中~

并没有检测机制~  

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

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

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

探春 2022-09-25 19:15:27

中断确实会丢失,
情况一般是关中断时间过长或者向我上面说的处理不及时导致几个中断合成一个
包括时钟中断都有可能丢失。
没有检测机制不说明绝对可信任,
而是把怎么检测处理丢失交由中断作者自己解决,
据我所知内核好像没有提供这方面的帮助

同展鸳鸯锦 2022-09-25 19:15:27

我的很简单,就是:
中断->软件处理->通知硬件->有可能再次中断

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文