一、tasklet和workqueue的区别和底层实现的区别
(1)softirq和tasklet都属于软中断,tasklet是softirq的特殊实现;workqueue是普通的工作队列。
(2)tasklet和workqueue,两者都是中断下半部的一种实现方法。区别在于tasklet属于中断上下文,没有进程的切换,不可睡眠和阻塞(原因详见【003 中断】);workqueue基于线程的封装,属于进程上下文,因此支持睡眠、阻塞。
二、什么时候申请中断?
Linux 会在硬件设备首次加载对应的驱动并初始化时,内核才会为该设备申请中断。
三、参考内容
The difference between SOFTIRQ, Tasklet and Workqueue _SOFTIRQ