問題タブ [rdma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
635 参照

infiniband - RDMA で複数のキュー ペアを作成するには

私は RDMA プログラミングの初心者です。私のワークフローは次のとおりです。

この方法では、接続されたクライアント ID ごとに 1 つのキュー ペアしか作成できないようです。もっと作成したい場合はどうすればよいですか?

0 投票する
1 に答える
313 参照

linux - KVM コード内から KVM の別のインスタンスに RDMA (Infiniband) 経由でメッセージを送信する方法は?

KVMの 2 つのインスタンス間でRDMA チャネルをセットアップしようとしています。ハイパーバイザー内からRDMA (Infiniband) Verbs APIを使用して、2 つのインスタンス間で単純な文字列を送信したいと考えています。ユーザー空間では何もしたくありません。純粋にカーネル空間が関与する必要があります

Verbs API のサンプル コードを見つけましたが、それはユーザー空間にのみ関連しています。誰かがこれのサンプルコードを教えてもらえますか?

(理想的には、ページ フォールト ハンドラー内からこれを実行したいと考えていますが、サンプル コードは、ハイパーバイザー内のどこに挿入されているかに固有のものではない可能性が高いため、これは単なる追加情報です。)

0 投票する
0 に答える
1022 参照

sockets - SDP と VMA の違いは何ですか?

Infiniband または RoCE-Ethernet で知られているように、以下を使用できます。

  • VMA - Voltaire Messaging Accelerator (VMA) Mellanox の Messaging Accelerator (VMA) は、メッセージベースおよびストリーミング アプリケーションのパフォーマンスを向上させます。その結果、レイテンシが 300% 削減され、アプリケーションのスループットが 200 倍増加します。 % サーバーあたり...

  • SDP - Sockets Direct Protocol (SDP) は、InfiniBand ファブリックの機能を利用して、既存のソケットベースのネットワーク アプリケーションのパフォーマンスを透過的に向上させるバイト ストリーム プロトコルです。

また、9 ページ: http://www.informatix-sol.com/docs/TCP_bypass_overview.pdf

ここに画像の説明を入力

また、SDP と VMA の両方が RDMA-Verbs を使用し、(libpreload) LD_PRELOAD として既にコンパイルされたプログラムのバイナリに使用できることが知られています: http://www.informatix-sol.com/low-latency.html

Openonload と同様に、SDP と Mellanox の VMA はすべてプリロードして、既存の TCP/IP ソケット プログラムを高速化します。Openonload は TCP/IP プロトコルを保持しているため、シングルエンドで使用できます。SDP と VMA はどちらも VERBS にマップされるため、ワイヤの両端に展開する必要があります。

また、次から画像を取得します。

ここに画像の説明を入力

ただし、SDP と VMA の両方の場合:

  • TCP/IP スタックをバイパスします
  • RDMA動詞を使用
  • ワイヤの両端に展開する必要があります
  • すでにコンパイルされたプログラムのバイナリに (libpreload) として使用できます。次のように program.bin を実行しますLD_PRELOAD=libsdp.so program.binLD_PRELOAD=libvma.so program.bin

では、なぜ速度 (レイテンシーと帯域幅) に大きな違いがあるのでしょうか?

  • VMA のレイテンシは SDP の 2.5 分の 1 です
  • VMA の帯域幅は SDP の 1.8 倍です
0 投票する
1 に答える
248 参照

wireshark - ddp としての wireshark デコード

通常は正常に動作する ddp/rdma パケットを調べるために、wireshark を使用しています。Wireshark は tcp の次のプロトコルが ddp/rdma であることを認識できない場合があるため (私は知っていますが)、「decode as」を使用してみましたが、そこに ddp/rdma のオプションがありません。

Wireshark に強制的にパケットを ddp/rdma として解析させる方法はありますか?

ありがとう!

0 投票する
2 に答える
227 参照

java - Java の RDMA 用の IBM の Oracle の JVerb に相当するもの

RDMA over Ethernet に RoCE プロトコルを採用したい場合、IBM のOracle のJVerbに相当するものは何ですか?

編集: おそらく、JXIO が私の最良の選択肢でしょうか?

0 投票する
2 に答える
494 参照

infiniband - メモリをマッピングしない RDMA 転送

IB ネットワークを介してファイルを交換する必要がある補足プロセスがあります。その後、ファイルは他のプロセスによって使用されます。

ワークフローは次のとおりです。

  1. /dev/shm にファイルを作成する
  2. ファイルのサイズを適切に変更する
  3. プロセスの VM 内のファイルをマップする
  4. mmaped 領域を ibv_reg_mr で登録します
  5. データ転送の RDMA 操作を開始する

私のスキームのボトルネックは ib_reg_mr であることが判明しました (3Gb メモリの登録に 1.78 秒かかると個別に測定しました)。プロセスのアドレス空間へのメモリ領域のマッピングをトリガーするようです。残念ながら、受信プロセスはこのメモリを使用しないため、この操作は必要ありません。メモリは、後で他のプロセスでマップして使用する必要があります。

そのため、受信プロセスのページテーブルを変更することを回避するのが賢明だと思いましたが、それが可能かどうかはわかりませんでした。

メモリ領域をプロセスのアドレス空間にマッピングせずにデータ転送を開始する方法があれば教えていただけますか?

0 投票する
1 に答える
699 参照

infiniband - rdma_get_recv_comp() または __ibv_get_cq_event() でスタックしないようにする方法は?

仲間の RDMA ハッカーの皆さん、__ibv_get_cq_event() を呼び出す rdma_get_recv_comp() がタイムアウトになるかどうか知っている人はいますか?

私の問題は、ここに示されているのと同じプログラムにあります: RDMA プログラムがランダムにハングします

正常に動作しますが、ランダムなクライアントの切断に対して堅牢ではありません。具体的には、クライアントを強制終了すると、サーバーは rdma_get_recv_comp() / ipv_get_cq_event() でスタックします。

これは Mellanox ConnectX-3 用で、デフォルトのタイムアウトが 2.14 秒で、再試行 = 1 であることを確認しました。ただし、ブロック モードの ibv_get_cq_event() がタイムアウトになるかどうかはわかりません。ibv_modify_qp() ドキュメントのタイムアウトの説明は、送信者のみが ACK を待機するため、タイムアウトは送信 (rdma_get_send_comp()) にのみ適用されることを示唆しているようです。しかし、受信にもタイムアウトを許可することに問題はありません。

この場合、rdma_get_recv_comp() 内でのハングが予想される場合、どうすればそれを回避したり、タイムアウトを実装したりできますか?

いくつかの可能性:

  1. サーバーで rdma_get_recv_comp() がハングしたままにならないように、必要なすべての送信を実行するようにクライアントのシャットダウン シーケンスを変更しますか?

  2. rdma_get_recv_comp() を、受信完了をポーリングするループに置き換えます

0 投票する
1 に答える
656 参照

linux-kernel - RDMA の Krping モジュール

ここで見つけることができるkrpringモジュールを機能させようとしています:http://git.openfabrics.org/?p=~sgrimberg/krping.git;a=summary

Mellanox ofed kernel 3.3 を介してドライバーをインストールします。すでに ofa-kernel/default から Module.symvers をコピーしましたが、機能しませんでした。

ubuntu 12.04 と 14.04 の異なるカーネルで試しました。私が使用したカーネルは、3.18、3.5、および 4.0 です。ただし、毎回同じ問題が発生します。誰かが krping をコンパイルして、これを手伝ってくれたら? 特に、カーネルのバージョン、OS、および使用したドライバーのインストール手順。

メイクファイル1

メイクファイル2

上記は、モジュールをコンパイルしようとした 2 つの makefile です。私が試すことができる変更を提案してください。