do_softirq执行时间

时间:2014-05-05 14:07:19

标签: linux linux-kernel

我想了解什么时候do_softirq被称为

a)从中断返回路径 b)当softirqd守护进程被唤醒时。

Q1。有什么其他地方可以调用它。

Q2。 raise_softirq会调用do_softirq吗?

现在softirq总是在中断上下文中运行,所以softirqd守护进程也在中断上下文中运行? 但调度程序会选择softirqd。

Q3。在高网络负载的情况下,内核如何对softirq进行限制。 CPU如何处理用户进程。比如说播放流媒体视频。

1 个答案:

答案 0 :(得分:0)

A1。仅从do_softirq__local_bh_enable调用netif_rx_ni

A2。不是直接的方式。 raise_softirq唤醒运行ksoftirqd函数的内核线程run_ksoftirqd,后者又调用__do_softirq() - > __local_bh_enable() - > do_softirq()

Softirq不会在中断上下文中运行,因为softirq的目的是将大部分中断处理移出中断上下文。 softirqd线程在内核上下文中运行。

A3。 softirqd线程由同一个调度程序管理,因此它们在调度方面等于用户线程。