我只是第一次阅读有关 Linux 内核中断处理程序下半部分的信息,并试图了解工作队列在延迟工作中的使用。
据我了解,工作队列相对于 softirps 或 tasklet 的好处是工作是在进程上下文中完成的,因此它可以休眠。但默认情况下,这项工作只是在其中一个事件/X 线程上按顺序完成?因此,如果说一些工作在 events/0 上开始,然后在等待一些 IO 时休眠很长时间,则该处理器上不能再处理工作队列项,这对于性能来说似乎非常糟糕。
如果工作可以长时间休眠,那么所有中断处理程序开发人员是否有责任不使用默认事件/X 线程?还是我误解了什么?