【问题标题】:What happens if a running tasklet is interrupted by a hardware interrupt如果正在运行的 tasklet 被硬件中断中断会发生什么
【发布时间】:2015-07-06 11:20:38
【问题描述】:

如果正在运行的 tasklet 被硬件中断中断会发生什么。我的意思是如果在执行过程中有一个 tasklet 并且发生了硬件中断。 tasklet 是在中断代码运行之前完成执行,还是在中断之后执行 tasklet。

【问题讨论】:

    标签: linux-kernel interrupt tasklet


    【解决方案1】:

    通常会立即执行硬件中断。返回时,tasklet 将继续执行。

    当一个小任务处理共享数据结构时,它可能会在较短的关键部分禁用中断,甚至很常见。

    【讨论】:

    • 这是否意味着当一个小任务被硬件中断中断时小任务状态被保存并且小任务稍后从相同的状态恢复?
    • 寄存器上下文保存在当前本地(内核)堆栈中。没有其他内容被保存,也没有其他内容被切换(即中断处理程序在同一个堆栈上运行)。当中断处理程序返回时,寄存器从堆栈中弹出,tasklet 继续执行。
    【解决方案2】:

    Taskelts 可以被硬件中断中断。见,例如this

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 2014-04-04
      • 2015-04-21
      • 1970-01-01
      • 2017-10-05
      • 2022-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多