如何将中断固定到驱动程序中的CPU

时间:2016-01-21 11:48:24

标签: linux-kernel linux-device-driver computer-architecture interrupt-handling softirq

是否可以将softirq或任何其他下半部分固定到处理器上。我怀疑这可以在softirq代码中完成。 但是在驱动程序内部可以将特定的IRQ固定到a     芯

1 个答案:

答案 0 :(得分:3)

从用户模式,您可以通过写入/proc/irq/N/smp_affinity来控制中断所针对的处理器,从而轻松完成此操作。实现它的代码的符号虽然没有导出,但是内核很难做到(至少对于可加载的模块来说,这是大多数驱动程序的结构)。

实现函数符号未导出的事实表明内核开发人员不想鼓励这样做。可能是因为它控制了用户。并且还将关于处理器数量等的假设嵌入到驱动程序中。

所以,要回答你的问题,是的,这是可能的,但它是沮丧的,你需要做几个丑陋的"实现它的事情((a)更改内核导出,(b)将驱动程序静态链接到主内核,或(c)从内核模式打开/写入proc文件。

实现此目的的通常方法是编写用户模式程序(甚至可以是shell脚本),将核心数字/掩码编程到相应的proc文件中。有关详细信息,请参阅内核源目录中的Documentation/IRQ-affinity.txt