pthread_mutex_lock(&mut);
if (!svc_cnt) {
- ret = socketpair(AF_INET, SOCK_STREAM, 0, svc_sock);
+ ret = socketpair(AF_UNIX, SOCK_STREAM, 0, svc_sock);
if (ret)
goto err1;
msg.rs = rs;
write(svc_sock[0], &msg, sizeof msg);
read(svc_sock[0], &msg, sizeof msg);
- ret = ERR(msg.status);
+ ret = rdma_seterrno(msg.status);
if (ret && !svc_cnt)
goto err3;
struct ibv_wc wc;
int ret, cnt;
- qp = rs->qp_list;
- if (!qp)
+ if (!(qp = rs->qp_list))
return;
do {
{
struct ds_qp *qp;
- qp = rs->qp_list;
+ if (!(qp = rs->qp_list))
+ return;
+
do {
if (!qp->cq_armed) {
ibv_req_notify_cq(qp->cm_id->recv_cq, 0);
void *context;
int ret;
+ printf("%s \n", __func__);
if (!rs->cq_armed)
return 0;
ret = epoll_wait(rs->epfd, &event, 1, -1);
+ printf("%s epoll wait ret %d errno %s\n", __func__, ret, strerror(errno));
if (ret <= 0)
return ret;
qp = event.data.ptr;
- ret = ibv_get_cq_event(rs->cm_id->recv_cq_channel, &cq, &context);
+ ret = ibv_get_cq_event(qp->cm_id->recv_cq_channel, &cq, &context);
+ printf("%s get cq event ret %d errno %s\n", __func__, ret, strerror(errno));
if (!ret) {
- ibv_ack_cq_events(rs->cm_id->recv_cq, 1);
+ ibv_ack_cq_events(qp->cm_id->recv_cq, 1);
qp->cq_armed = 0;
rs->cq_armed = 0;
}
do {
ds_poll_cqs(rs);
if (test(rs)) {
+ printf("%s test succeeded\n", __func__);
ret = 0;
break;
} else if (nonblock) {
ret = ERR(EWOULDBLOCK);
+ printf("%s nonblocking \n", __func__);
} else if (!rs->cq_armed) {
+ printf("%s req notify \n", __func__);
ds_req_notify_cqs(rs);
rs->cq_armed = 1;
} else {
- rs_update_credits(rs);
fastlock_acquire(&rs->cq_wait_lock);
fastlock_release(&rs->cq_lock);
ret = ds_get_cq_event(rs);
+ printf("%s get event ret %d %s\n", __func__, ret, strerror(errno));
fastlock_release(&rs->cq_wait_lock);
fastlock_acquire(&rs->cq_lock);
}
} while (!ret);
fastlock_release(&rs->cq_lock);
+ printf("%s ret %d errno %s\n", __func__, ret, strerror(errno));
return ret;
}
do {
ret = ds_process_cqs(rs, 1, test);
+ printf("%s ret %d errno %s\n", __func__, ret, strerror(errno));
if (!ret || nonblock || errno != EWOULDBLOCK)
return ret;
struct ds_header *hdr;
int ret;
+ret = 0;
+ printf("%s \n", __func__);
if (!(rs->state & rs_readable))
return ERR(EINVAL);
if (!rs_have_rdata(rs)) {
+ printf("%s need rdata \n", __func__);
ret = ds_get_comp(rs, rs_nonblocking(rs, flags),
rs_have_rdata);
+ printf("%s ds_get_comp ret %d errno %s\n", __func__, ret, strerror(errno));
if (ret)
return ret;
}