ファイルには/proc/interrupts
IO-APIC レベル (またはエッジ) が表示され、他のシステムには PCI-MSI-X が表示されます。どちらも同じデバイスの精神を持っています。
これら2つの違いはありません。PCI-MSI-X を IO-APIC に変更できますか?? どのカーネルモジュール、ファイル、conf、または proc ファイルに属していますか?
使用可能なすべての CPU コアに割り込みを分散しても安全ですか??
ファイルには/proc/interrupts
IO-APIC レベル (またはエッジ) が表示され、他のシステムには PCI-MSI-X が表示されます。どちらも同じデバイスの精神を持っています。
これら2つの違いはありません。PCI-MSI-X を IO-APIC に変更できますか?? どのカーネルモジュール、ファイル、conf、または proc ファイルに属していますか?
使用可能なすべての CPU コアに割り込みを分散しても安全ですか??
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 割り込みを有効にできないのはなぜですか」ということです。
参考文献: