软中断是可以被硬中断打断的,有一点需要注意:假设当前有3个softirq处于pending状态,然后__do_softirq正在处理第1个软中断,这个时候硬中断发生了,硬中断里面trigger了1个新的更高优先级的softirq,当中断返回的时候,检查in_interrupt不为0,所以不会重新调用do_softirq,而是返回中断前的__do_softirq中。
软中断的注册:
调用open_softirq注册,这里在net_dev_init中,把NET_RX_SOFTIRQ对应到net_rx_action函数那里。
阅读(3265) | 评论(0) | 转发(0) |