简介

内核中断的下半部分提供了好几种机制。

  • 软中断
  • tasklet
    • 小任务机制

软中断

image.png
内核实现了10种软中断。

  1. Linux-4.9.88/include/linux/interrupt.h
  2. enum
  3. {
  4. HI_SOFTIRQ=0,
  5. TIMER_SOFTIRQ,
  6. NET_TX_SOFTIRQ,
  7. NET_RX_SOFTIRQ,
  8. BLOCK_SOFTIRQ,
  9. IRQ_POLL_SOFTIRQ,
  10. TASKLET_SOFTIRQ,
  11. SCHED_SOFTIRQ,
  12. HRTIMER_SOFTIRQ, /* Unused, but kept as tools rely on the
  13. numbering. Sigh! */
  14. RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */
  15. NR_SOFTIRQS
  16. };

tasklet

小任务机制是I/O驱动程序中的实现可延迟函数的首选。
image.png