Nis*_*ami 5 linux-device-driver linux-kernel interrupt-handling
当提到Linux内核中断处理程序时,我知道有两个阶段的中断执行,首先是上半部分和第二个下半部分.
我知道上半部分会在HW发生中断时立即执行,但我怀疑下半部分何时以及如何执行?
下半部分被实现为微线程(延迟中断上下文)、工作队列(进程上下文)和软中断(很少,Linux 内核中只有 9 个)。
定时器中断处理程序检查要执行 9 个软中断中的哪一个(调度程序、hrtimers、网络 rx/tx、tasklet 等)。如果有任何挂起的软中断(比如上半部已通知的微线程列表),那么这些软中断就会被执行。对于任何 tasklet,对于任何其他软中断也是如此。另外,由于tasklet是一种软中断,它只能在同一个CPU核心上执行。
相反,工作队列在相应进程随后上下文切换时执行。因此,与微线程不同,它们可以休眠并且也可以调度到其他 CPU 内核上。
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |