ksoftirqd在中断或进程上下文中的下半部分?

问题描述:

我一直在精心阅读Robert Love编写的名为Linux Kernel Development的书。ksoftirqd在中断或进程上下文中的下半部分?

在我的理解中,softirqs和tasklet在中断上下文中运行。另外,ksoftirqd是在进程上下文中运行的内核线程。所以,我觉得非常困惑和难以考虑如何使用kso​​ftirqd(进程上下文)来运行softirqs(中断上下文)。

+0

的可能重复[哪个方面都是软中断和任务蕾在?(http://*.com/questions/7135915/which-context-are-softirq-and-tasklet-in) – harmic 2014-10-20 05:53:10

+0

@harmic这个问题没有'ksoftirqd'上下文的答案。 – 2014-10-20 10:34:47

我有类似的问题,在我的脑海,而读的书,这里是一个链接应该澄清一些事情:refer to this papar

“ksoftirqd被实现为一组线程,每个是 受限于只在特定的CPU上运行,它们被普通的任务调度器调度(在 非常高的优先级),这个实现 的优点是执行下半部分的时间是 占系统任务的。为了让用户看到 该机器过载有中断处理,并且可能是 采取补救措施。

虽然现在工作是在流程上下文中完成,而不是在下半部分上下文中完成,但ksoftirqd设置了与在下半部分上下文中找到的 相同的环境。具体来说,它执行 softirq处理程序,并启用本地中断,并在本地禁用下半部分 。它运行的下半部代码并不需要 变化为ksoftirqd运行它。”