0

クライアント側:

ib_poll_cq(cq,1,&wc){
    if(wc.status == IB_WC_SUCCESS) 
        printk("Successful\n");
    else
        printk("Failure: %d\n", wc.status);
}

サーバ側:

do {
   num_comp = ibv_poll_cq(s_ctx.recv_cq, 1, &wc);
} while (num_comp == 0);

クライアント側はカーネル空間で記述され、サーバー側はユーザー空間で記述されます。wc.status は 12 を返します。これにはどのような問題が考えられますか?

4

1 に答える 1

3

値 12wc.statusは、再試行超過エラーが発生したことを意味します。これは、エラーが発生したノード (ローカルと呼びましょう) が RDMA 操作の送信または実行を試みましたが、他のノードからの応答を取得できなかったことを意味します。これは、リモート QP が RTR 状態になるように正しく設定されておらず、そのパラメーターがローカル QP のパラメーターと一致していない場合に発生する可能性があります。

さまざまなibv_wcコードの詳細については、このブログ投稿を参照してください。

于 2016-07-17T06:02:23.180 に答える