其实中断丢失是很常见的一个现象
多年前,新手的我自己写WINDOWS驱动的时候,觉得中断丢失简直是难以理解。那时的我觉得硬件应该是很可靠的,OS也是。不过后来慢慢发现,其实硬件本身很多时候是不一定可靠的,还有其他的问题也可能导致中断丢失。最近在版上也看到不少类似的问题。
一般在写驱动的时候,就要考虑到中断丢失的情况。解决办法是用一些定时器(看门狗,WACHDOG),定时的查下硬件状态。如果硬件本身有BUFFER, 虽然中断丢了,数据或者命令还在,那么直接读出来就可以了。
有兴趣的可以参考下 LINUX E1000网卡的实现中WATCHDOG部分。
希望对大家有些帮助。 顶!受益不小! 有坏道会不会引起中断 回LS,不一定,看硬件说明书。 中断丢失用时候是硬件间协同或同步问题。
芯片本身的设计思路也考虑了这些问题.可能有不同的解决方案. 恩。不过总的来说,不要指望硬件很完美。 恩。不过总的来说,不要指望硬件很完美。
accessory 发表于 2010-06-06 20:58 http://bbs.chinaunix.net/images/common/back.gif
我最近在看一款OS的CPC实现,就是基于IPI的(APIC IPI),但软件层上没有去考虑IPI丢失的情况。
所以想请教下,像IPI这种核间中断,硬件会保证不丢失吗? 对IPI不是很了解。不过感觉上应该比较可靠,因为如果IPI丢了,那就没有啥其他替代的方法了。一般的网卡如果中断丢了,还可以定时轮询下。IPI 是CPU之间的,似乎不能轮询那些变化? 纯属猜测 ,不一定对 感谢分享:) 我也一直對這個問題感到很困惑,系統更新時間靠的是時鐘中斷,但是cpu關中斷的時間那麼多,按理說時鐘中斷丟失不算小概率事件,那麼為什麼不會造成系統計時的偏差呢?
页:
[1]
2