![irqbalance 的工作原理](https://linux22.com/image/696680/irqbalance%20%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.png)
irqbalance 是否添加了内核模块?用户空间守护进程如何将中断分配给不同的处理器?如果是用户空间进程执行此操作,内核到用户空间的上下文切换不会延迟中断处理吗?
答案1
irqbalance 不添加内核模块。它是一个守护进程。
irqbalance 不会将 IRQ 分配给特定硬件,它只是将这些 IRQ 动态映射到 CPU。因此,如果 eth0 被分配了 IRQ 28,irqbalance 会定期将 IRQ 28 从 CPU0 移动到 CPU1、CPU2、CPU3、CPU0...
您可以通过将 CPU 亲和性掩码写入“/proc/irq/${IRQ}/smp_affinity”来手动执行相同的操作。
如果亲和性同时发生变化,到达 CPU 的中断可能会有一些延迟,但我猜测这与经历上下文切换的任何过程类似。