我是rdma编程的新手,目前正在使用ib动词和rdma cma设置一个简单的客户机/服务器,但遇到了困难。我的服务器运行并等待连接,但是我的客户机永远不会连接,因为它在rdma_create_qp()失败。我不确定可能需要什么信息来帮助解决这个问题,但我会根据要求编辑所需的信息。(目前,相关信息片段出现在我的代码中)
qp_init_attr.send_cq = cq;
qp_init_attr.recv_cq = cq;
qp_init_attr.qp_type = IBV_QPT_RC;
qp_init_attr.cap.max_send_wr = 16;
qp_init_attr.cap.max_recv_wr = 16;
qp_init_attr.cap.max_send_sge = 8;
qp_init_attr.cap.max_recv_sge = 8;
if(rdma_create_qp(cm_id, pd, &qp_init_attr)){
fprintf(stderr, "Error, rdma_create_qp() failed: %s\n", strerror(errno));
return -1;
}发布于 2017-02-24 00:55:40
不要和cm_id通话。假设您在event RDMA_CM_EVENT_ROUTE_RESOLVED上调用rdma_create_qp,您应该使用evt->id,它是您创建的客户端连接的rdma_id。
发布于 2017-02-21 21:07:24
在librdmacm (https://github.com/linux-rdma/rdma-core/blob/master/librdmacm/cma.c)的git页面上:
在以下情况下,您将获得EINVAL:
https://stackoverflow.com/questions/40683724
复制相似问题