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

值 12 inwc.status表示发生了超出重试错误。这意味着看到错误的节点(我们称其为本地节点)已尝试发送或执行 RDMA 操作,但未从其他节点获得响应。如果远程 QP 未正确设置为处于 RTR 状态且其参数与本地 QP 的参数匹配,则会发生这种情况。

您可以在此博客文章中找到有关各种ibv_wc代码的一些详细信息。

于 2016-07-17T06:02:23.180 回答