客户端:
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.这可能有什么问题?
答案 0 :(得分:3)
req.errors.length
中的值为12表示已发生重试超出错误。这意味着看到错误的节点(让我们称之为本地)已尝试发送或执行RDMA操作,但未从其他节点获得响应。如果远程QP未正确设置为处于RTR状态且其参数与本地QP参数匹配,则会发生这种情况。
您可以在此blog post中找到有关各种wc.status
代码的详细信息。