Tasklets如何工作?

时间:2012-09-15 12:15:12

标签: linux

在处理tasklet时是否禁用了中断,因为它们应该在中断上下文中运行。如果在处理tasklet时它们被丢弃,那么将它们称为底部半部机制的重点是什么,因为它与顶部的情况相同中断被禁用。 或者就像tasklet仅在多处理器系统上有用,其中中断在一个处理器上生成,相应的tasklet在另一个处理器上调度,当tasklet运行时中断在另一个处理器上被中断。 请澄清。

1 个答案:

答案 0 :(得分:0)

Linux将中断处理分为两部分:

  • 首先,您以尽可能简单的方式处理中断请求(IRQ),尽可能少地执行,并安排softirq / tasklet执行较重的处理。
  • 然后,softirq / tasklet被调度,重处理开始。

Linux中的上下文是:

  • NMI背景
  • hardirq context :上面中断处理的第一部分。
  • softirq context :上述中断处理的第二部分。

  • 中断上下文:以上任何一种情况。

  • 进程/用户上下文:代表进程运行,例如:由于系统调用。与中断上下文相反。

  • 原子上下文:中断上下文,或者在必须为原子(不能被中断)的代码段中的进程上下文中,例如:因为我们已经采用了自旋锁。

运行tasklet时不会禁用中断。进一步调用相同的tasklet是。