如果中断发生在tasklet执行会发生什么

时间:2014-03-03 16:21:05

标签: tasklet

我对tasklet的了解:

  1. 在启用所有中断的情况下运行Tasklet。
  2. tasklet在中断上下文中运行。
  3. 无法入睡。
  4. 以原子方式运行。
  5. 它有保证安排从不迟到下一个滴答。
  6. 我的问题:

    1. 由于在下半部分中启用了所有中断,所以发生了什么如果一个tasklet正在运行并且在任何中断到来之间。 (如果在tasklet执行期间禁用了中断,那么tasklet的好处是什么?)
    2. 为什么确保tasklet始终安排到下一个滴答?
    3. 说tasklet是优先级为0(高优先级的tasklet)和优先级为6(普通的taslet)的softirq是否正确?

1 个答案:

答案 0 :(得分:1)

*Since in bottom half all interrupts are enabled, what happened If a tasklet is running and in between any interrupt comes. (If interrupts are disabled during tasklet execution then what is the benefit of tasklet)?*

据我所知,Tasklet(基于软IRQ构建)在软IRQ上下文中运行,这实际上意味着它在进程被Hard IRQ中断时运行的任何进程的上下文中运行(因此它是借用堆栈),所以再次中断将返回到tasklet执行。

*Is it correct to say that tasklets are softirq with priority level 0(Hi priority tasklet) and priority level 6(Normal taslet)?*

是的,tasklet本质上是基于Soft IRQ构建的包装器。