workqueue VS tasklet 相同点:workqueue 和 tasklet(softirq)是最常用的下半部执行机制之一。 不同点: workqueue :本质是把 work 交给一个内核线程,在进程上下文调度的时候执行。因为这个特点,所以 workqueue 允许重新调度和睡眠,这种异步执行的进程上下文,能解决因为tasklet 执行时间长而导致的系统实时性下降等问题。
概括一下就是1. tasklet不能休眠, 2. 不须要休眠tasklet效率更高 3.有休眠仅仅能workqueue (1)假设不须要休眠,选择tasklet会开销更小 (2)假设任务要推后非常多,须要休眠和延时。要使用workqueue,由于tasklet中不能够休眠(linux内核设计与实现page127) (3)从效率上比較。workqueue须要内核线程的切换,效率没有tasklet...
七、workqueue与其它机制的比较 7.1 workqueue vs tasklet 7.2 workqueue vs 内核线程 八、实际案例分析 8.1 网络子系统中的应用 // net/core/dev.c中的实际应用staticvoidnet_rx_action(structwork_struct*work) {// 网络数据包处理while(!list_empty(&sd->poll_list)) {structnapi_struct*n; n =list_firs...