Linux中的共享IRQ

时间:2013-10-22 18:00:33

标签: linux kernel interrupt irq isr

当多个注册的中断服务程序共享一条IRQ线时,什么决定了中断线被引发时ISR的执行顺序?

1 个答案:

答案 0 :(得分:1)

无论如何,顺序是不可预测的,因为如你所说,中断线是共享的。因此,系统中有(或可能是)其他设备驱动程序在与ISR共享的同一中断线上注册ISR。所以你不能假设调用ISR的顺序是什么!

现在当引发中断线时,内核会一个接一个地调用为该行注册的所有ISR,直到某个ISR返回“已命名”为止。

ISR获得一个代表设备的软上下文,由ISR来检查设备是否是中断源。如果是,ISR将返回CLAIMED,否则不会声明。