Linux软中断实现详解(2.6.26.3)

2014-11-24 09:15:11 · 作者: · 浏览: 0

Linux软中断的类型:



关键数据结构和函数介绍:


in_interrupt()函数:



可见,宏in_interrupt()检查当前进程thread_info结构中的preempt_count字段中硬中断和软中断计数器,其全为0,才返回0.


preempt_count字段的含义:


0-7:抢占计数器,记录显示禁用本地CPU内核抢占的次数,值等于0表示允许内核抢占。


8-15:表示软中断被禁用的程度,同样值为0表示处于激活状态。


16-27:表示本地CPU中断处理程序的嵌套数。


表示软中断的主要数据结构为softirq_action类型的数组,数组名为softirq_vec。



另外一个实现软中断的数据结构是irq_cpustat_t。