1
是否可以将softirq或任何其他下半部分连接到处理器。我怀疑这可以在softirq代码中完成。 但是,在驱动程序内部,可以将特定的IRQ固定到内核。如何在驱动程序中将中断连接到CPU
是否可以将softirq或任何其他下半部分连接到处理器。我怀疑这可以在softirq代码中完成。 但是,在驱动程序内部,可以将特定的IRQ固定到内核。如何在驱动程序中将中断连接到CPU
在用户模式下,您可以通过写入/proc/irq/N/smp_affinity
来轻松控制哪个处理器被中断指向。实现这个功能的代码的符号不会被导出,所以从内核开始很难做到这一点(至少对于一个可装载的模块来说,这是大多数驱动程序的结构)。
实现函数符号未被导出的事实表明内核开发人员不想鼓励这一点。据推测,这是因为它将控制权从用户手中带走。并且还将关于处理器数量的假设等嵌入到驱动程序中。所以,要回答你的问题,是的,这是可能的,但它是不鼓励的,你需要做一些“丑陋”的事情来实现它((a)改变内核输出,(b)链接你的驱动程序静态地插入主内核,或者(c)从内核模式打开/写入proc
文件)。
实现此目的的常用方法是编写用户模式程序(甚至可以是shell脚本),将核心编号/掩码编程到合适的proc
文件中。有关详细信息,请参阅内核源目录中的Documentation/IRQ-affinity.txt
。