Linux-Kernel
irqbalance 的工作原理
irqbalance 添加核心模組嗎?使用者空間守護程序如何將中斷分配給不同的處理器?如果是使用者空間程序正在執行此操作,核心到使用者空間上下文切換不會延遲中斷處理嗎?
irqbalance 不添加核心模組。它是一個守護程序。
irqbalance 不會將 IRQ 分配給特定的硬體,它只是將這些 IRQ 動態映射到 CPU。因此,如果為 eth0 分配了 IRQ 28,則 irqbalance 將定期將 IRQ 28 從 CPU0 移動到 CPU1 到 CPU2 到 CPU3 到 CPU0…
您可以通過將 CPU 關聯遮罩寫入“/proc/irq/${IRQ}/smp_affinity”來手動執行相同的操作。
如果同時更改關聯性,則中斷進入 CPU 可能會有一些延遲,但我猜這與經歷上下文切換的任何程序類似。