8

ファイルには/proc/interruptsIO-APIC レベル (またはエッジ) が表示され、他のシステムには PCI-MSI-X が表示されます。どちらも同じデバイスの精神を持っています。
これら2つの違いはありません。PCI-MSI-X を IO-APIC に変更できますか?? どのカーネルモジュール、ファイル、conf、または proc ファイルに属していますか?

使用可能なすべての CPU コアに割り込みを分散しても安全ですか??

4

1 に答える 1

14

MSI-X 割り込みはメッセージベースの割り込みであり、PCIe デバイスが割り込みを通知するために使用できる唯一の方法です。割り込みを通知するためにハードウェア ラインをアサートする代わりに、デバイスは事前構成されたアドレスに 1 つのワードを書き込みます。そのアドレスは、CPU の制御レジスタか、従来の割り込みシステムをエミュレートする PCIe ルート ポートのレジスタのいずれかです。あなたはそれらのケースの両方を見ています。

BIOS は、APIC のルーティングを介して CPU に到達する INTx 割り込みをエミュレートするルート ポートに MSI 割り込みを送信するようにボードを構成します。OS が MSI を直接サポートしている場合、デバイス ドライバーは MSI 宛先アドレスを再プログラムできるため、割り込みメッセージは CPU 割り込みレジスタに直接到達します。

MSI-X が MSI と異なるのは、複数の割り込みベクトル (たとえば、デュアル ポート NIC の各ネットワーク ポートに 1 つ、または TX と RX に 1 つ) をサポートすることだけです。

INTx エミュレーションは同じ PCIe ブリッジの背後にあるデバイス間で割り込みを共有するため、MSI は INTx エミュレーションよりも優れたパフォーマンスを発揮します。あなたの質問は、「私のシステムの 1 つがネットワーク カードで MSI-X 割り込みを有効にできないのはなぜですか」ということです。

参考文献:

http://lwn.net/Articles/44139/

http://en.wikipedia.org/wiki/Message_Signaled_Interrupts

于 2012-06-05T14:41:17.433 に答える