私は、複数のIntelネットワークカード(Intel EXPI9402PT、82571EBチップに基づく)用にドライバe1000eを使用しています。問題は、複数のインターフェイスで最大速度(1GB)を利用しようとすると、各インターフェイスの速度が低下し始めることです。複数のネットワークカードの同じドライバ - パフォーマンスのボトルネック?
カーネルスペースに私のドライバがあり、パケットを送信したばかりです。それだけでパケットをallocs:
skb = dev_alloc_skb(packet->len);
、それらをすることによって、それらを送信します。
result = dev->hard_start_xmit(skb,dev);
各インタフェースはドライバのその自身インスタンスを持っています。
1つのインターフェイスに対しては、120435948バイト/秒が得られます。
2つのインターフェイスの場合、61080233バイト/秒と60515294バイト/秒が得られます。
私は、28564020バイト/秒、27111184バイト/秒、27118907バイト/秒という3つのインターフェースを取得しています。
何が原因なのですか? hard_start_xmit関数は再入可能ですか?
私はPCI Express x4とx8を持っていますが、それらは十分に速くなければなりません。 –