linux - Linux 中的共享 IRQ

标签 linux kernel interrupt irq isr

当一个 IRQ 线在多个已注册的中断服务例程之间共享时,什么决定了中断线产生时 ISR 的执行顺序?

最佳答案

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

现在,当出现中断线时,内核会一个接一个地调用为该线注册的所有 ISR,直到某个 ISR 返回“CLAIMED”。

ISR 获得一个表示设备的软环境,由 ISR 检查这个设备是否是中断源。如果是,则 ISR 返回 CLAIMED,否则返回 NOT CLAIMED。

关于linux - Linux 中的共享 IRQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19525100/

相关文章:

linux - 如何访问当前未运行的进程背后的 task_struct?

c - Linux内核模块编程Makefile错误

c - 从同一管道分两步读取

python - 如何找出两个随机排列的文本文件中未排序行之间的区别?

assembly - 使引导加载程序和内核成为iso?

c - "printf"在任何 INT 10h 中断调用后无法正常工作

c - 启用ATTINY1626 UART RX中断不触发ISR,如何解决?

assembly - 帮助在DOS的NASM汇编中编写TSR程序

c - Linux-C : reading from pipe returns first buffer written to it

linux - 在 linux mint 上安装 lapis(与 lua 5.3 一起)