wr_rx->wr.wr.rdma.remote_addr, wr_rx->wr.wr.rdma.rkey);
return ret;
}
- m_qp->pi_rw_cnt++;
mlog(4," WC_rem hd %d tl %d, m_qp %p qpn 0x%x, m_cm %p\n",
m_qp->wc_hd_rem, m_qp->wc_tl_rem, m_qp, ib_qp->qp_num, m_qp->cm);
mpxy_unlock(&m_qp->rxlock);
write(m_qp->smd->md->mc->rx_pipe[1], "w", sizeof "w"); /* signal rx_thread */
sched_yield();
- } else {
- mlog(4, " WR_rx[%d] %p flgs %x %s complete - WR tl %d tl_wt %d hd %d\n",
- wr_rx->w_idx, wr_rx, wr_rx->flags,
- wc->opcode == IBV_WC_RDMA_READ ? "RR":"RW_IMM WC",
- m_qp->wr_tl_r, m_qp->wr_tl_r_wt, m_qp->wr_hd_r);
-
- mpxy_lock(&m_qp->rxlock);
- m_qp->pi_rw_cnt--; /* pending WC post_send */
- mpxy_unlock(&m_qp->rxlock);
}
}
wc[i].vendor_err, wc[i].byte_len, wr_type);
/* Proxy_in -> */
- if ((wr_type == WRID_RX_RR) || (wr_type == WRID_RX_RW_IMM)) {
+ if (wr_type == WRID_RX_RW_IMM) { /* RW_imm WC */
+ continue;
+ }
+ if (wr_type == WRID_RX_RR) {
m_wr_rx = (struct mcm_wr_rx *)WRID_ADDR(wc[i].wr_id);
assert(m_wr_rx);
m_qp = (struct mcm_qp *)m_wr_rx->context;
assert(m_qp);
- mlog(4," wr_rx_id[%d of %d] wr_rx %p m_qp %p\n",
- i+1, ret, m_wr_rx, m_qp);
m_pi_req_event(m_qp, m_wr_rx, &wc[i], wr_type);
continue;