tasklet属于软中断,且不可休眠,应用线程会一直等待软中断执行完毕才能继续执行,所以会卡顿。
共享工作队列:
中断服务函数里面调用schedule_work(function),内核线程会在合适的时机运行function,内核线程可以休眠,不影响app运行
自定义工作队列(中断的线程化处理):
request_threaded_irq(function ),如果某项work非常耗时,影响其他内核中work的执行(排队一个一个执行),可以单独开一个工作队列,用来单独执行那些耗时的work
软中断可以被硬件中断打断。