客户端:
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。这可能存在什么问题?
发布于 2016-07-17 14:02:23
wc.status中的值为12表示发生了超出重试的错误。这意味着看到错误的节点(让我们称其为本地)已经尝试发送或执行RDMA操作,但没有从另一个节点获得响应。如果远程QP未正确设置为RTR状态,且其参数与本地QP的参数匹配,则会发生这种情况。
您可以在此blog post中找到有关各种ibv_wc代码的一些详细信息。
https://stackoverflow.com/questions/38414641
复制相似问题