系统调用会中断softirq吗?

时间:2017-03-02 03:05:03

标签: linux-kernel interrupt

根据我的理解,当触发软件中断时,系统调用会得到服务,所以我认为它不能中断硬件ISR,因为ISR内部的本地CPU irq被禁用,但它看起来可能会中断任何其他任务,例如softirq,tasklet,工作队列和内核线程?

通常,我们不需要担心在优先级较高的任务中针对较低优先级内核任务的争用。就像我们不需要在tasklet或softirq中保护数据免受内核线程的影响,因为抢占已被禁用。

当系统调用在内核模式的进程上下文中运行时,如果它可以中断softirq,我们必须在针对进程的softirq中考虑适当的保护。更糟糕的是,重负载系统调用可以延迟执行softirqs和tasklet至少一次滴答或直到另一个硬件中断到来,内核再次安排它们。

如果我的理解错误,请纠正我。

1 个答案:

答案 0 :(得分:5)

你过分思考这个。

系统调用必须由当前正在运行的用户空间应用程序进行。

如果CPU忙于为IRQ提供服务,它没有运行用户空间应用程序,因此系统调用不会在该CPU上发生。