为什么在中断上下文中不能休眠
我的理解:
1.执行在中断上下文的代码:
- a)中断的 top half (interrupt handler)和
- b)bottom half(softirq,tasklet等)
2.中断服务程序需要满足的特性:
需要记住 interrupt handler 在执行时是中断了其他的进程或者其他的interrupt handler的。对于interrupt handler(ISR)来讲,快速地执行完毕然后返回到被中断的代码中是很重要的一点。interrupt handler要尽可能快速,从这一点上来讲当然不应该让它sleep。(比如:时钟中断ISR休眠了会发生什么?)