Linux软中断

2014-11-24 13:15:13 · 作者: · 浏览: 2

linux中所谓的可延迟函数,包括软中断和tasklet以及通过中作队列执行的函数(这个以后说),软中断的分配是静态的(即值编译时定义),而tasklet的分配和初始化可以在运行时进行。


软中断


软中断所使用的数据结构定义为


其中softirq_action类型为一个函数指针,从这里也可以看出,软中断的个数是有限的有NR_SOFTIRQS个,具体的定义如下:


可以看出,一共10个软中断。


软中断的初始化


上面函数中,参数nr为softirq_vec[]数组的下标,初始化就是初始化softirq_vec[]数组内容。


初始化了软中断后,要执行,接下来要做的是激活软中断,运用下面函数


具体的激活工作由raise_softirq_irqoff函数实现


守护线程softirqd就是对软中断的处理