web-dev-qa-db-ja.com

irqbalanceのしくみ

Irqbalanceはカーネルモジュールを追加しますか?ユーザースペースデーモンはどのようにして異なるプロセッサに割り込みを割り当てることができますか?それを実行しているのがユーザースペースプロセスである場合、カーネルからユーザースペースへのコンテキストスイッチは割り込み処理を遅らせませんか?

2
kalyan

irqbalanceはカーネルモジュールを追加しません。デーモンです。

irqbalanceは、IRQを特定のハードウェアに割り当てるのではなく、それらのIRQをCPUに動的にマップするだけです。したがって、eth0にIRQ 28が割り当てられている場合、irqbalanceは定期的にIRQ 28をCPU0からCPU1、CPU2、CPU3、CPU0に移動します。

CPUアフィニティマスクを「/ proc/irq/$ {IRQ}/smp_affinity」に書き込むことで、同じことを手動で行うことができます。

アフィニティが同時に変更された場合、CPUに来る割り込みにいくらかの遅延が発生する可能性がありますが、それはコンテキストスイッチを経験した他のプロセスと同様であると推測しています。

1
bgoldberg