NIC割り込みがトリガとして使用される制御システムの作業に取り組んでいます。これは3マイクロ秒以上のサイクル時間で非常にうまく機能します。今私はいくつかのパフォーマンステストを行い、それぞれ2つの割り込みの間の最短時間である伝送時間を測定したい。RealTek 8168(r8169 Linuxドライバ) - Rxディスクリプタリングの混乱
送信者は、できるだけ早く60バイトのパッケージを送信しています。レシーバはパッケージごとに1つの割り込みを生成する必要があります。私は、Rx記述子リングのサイズである256パケットでテストしています。パケットデータは、テスト中は処理されません。割り込みだけが面白いです。
問題は、レセプションが2つの割り込みの間に1マイクロ秒以下ではなく、約70個の割り込み/記述子に対して非常に高速であるということです。次に、NICはRDU(Rx Descriptor Unavailable)ビットを設定し、リングの終わりに達する前に受信を停止します。混乱させることは、Rx記述子リングのサイズを2048(たとえば)まで増加させると、割り込みの数も増えています(約800回)。私はこの行動を理解していません。私は彼が70の割り込みの後に再び止まるべきだと思った。
時間に問題があるようですが、なぜですか?私は何か見落としているが、何?誰かが私を助けることができますか?
ありがとうございます!
ありがとうございます!私はPCIeシステムが遅くなることを認識しました。レイテンシは高いです。パッケージの受信は高速になるため、所有者を変更する前にディスクリプタリングがいっぱいになります。 – Billy
それは素晴らしいです!@ビリー – Adi06411