摘要:
.6 的linux kernel最多可以使用32中softirq,见代码:softirq.c/*表示softirq最多可以有32种类型,实际上linux只使用了六种,见文件interrupt.h*/static struct softirq_action softirq_vec[32] __cacheline_aligned_in_smp;复制代码linux中实际使用的六种:interrupt.henum{ HI_SOFTIRQ=0, /*用于高优先级的tasklet*/ TIMER_SOFTIRQ, /*用于定时器的下半部*/ NET_TX_SOFTIRQ,/*用于网络层发... 阅读全文
摘要:
1.中断处理函数可以被其他中断线上的中断处理函数所中断2.如果中断线是共享的,那么当该中断线上有中断发生时,cpu将响应该中断,并依次调用该中断线上的所有已注册的中断处理函数,每个中断处理函数将进行判断,是否是自己对应的硬件设备发生的中断,不是则返还IRQ_NONE,否则返回IRQ_HANDLE,并响应该中断。3.在内核中执行do_IRQ()响应中断,首先判断该线上是否有中断处理程序,然后在该线上运行所有的中断处理程序。4.总的来说中断是属于大家的,所有在同一个中断号内的需要处理的例程(同一中断号内的处理例程可能有多个)都将调用这个中断处理程序,然而在释放中断处理程序的最后一个参数中的dev_ 阅读全文