软中断
初始化
start_kernel()
softirq_init(void)
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
open_softirq(HI_SOFTIRQ, tasklet_hi_action);
softirq_vec[nr].action = action; softirq_vec[NR_SOFTIRQS]
+------------------------------------+
|action |
| void (*)(struct softirq_action *) |
+------------------------------------+
|action |
| void (*)(struct softirq_action *) |
+------------------------------------+
|action |
| void (*)(struct softirq_action *) |
+------------------------------------+硬塞的__preemt_count
何时调用软中断?
标记软中断请求
在适当的时机执行软中断
响应软中断
Last updated