int recv_cm_meta(CephContext *cct, int socket_fd);
void wire_gid_to_gid(const char *wgid, ib_cm_meta_t* cm_meta_data);
void gid_to_wire_gid(const ib_cm_meta_t& cm_meta_data, char wgid[]);
- void add_tx_wr(uint32_t amt) { tx_wr_inflight += amt; }
- void dec_tx_wr(uint32_t amt) { tx_wr_inflight -= amt; }
- uint32_t get_tx_wr() const { return tx_wr_inflight; }
ibv_qp* get_qp() const { return qp; }
Infiniband::CompletionQueue* get_tx_cq() const { return txcq; }
Infiniband::CompletionQueue* get_rx_cq() const { return rxcq; }
uint32_t max_recv_wr;
uint32_t q_key;
bool dead;
- std::atomic<uint32_t> tx_wr_inflight = {0}; // counter for inflight Tx WQEs
};
public:
worker->perf_logger->inc(l_msgr_rdma_tx_failed);
return -errno;
}
- qp->add_tx_wr(num);
worker->perf_logger->inc(l_msgr_rdma_tx_chunks, tx_buffers.size());
ldout(cct, 20) << __func__ << " qp state is " << get_qp_state() << dendl;
return 0;
worker->perf_logger->inc(l_msgr_rdma_tx_failed);
return ;
}
- qp->add_tx_wr(1);
}
void RDMAConnectedSocketImpl::cleanup() {
<< " len: " << response->byte_len << " , addr:" << chunk
<< " " << ib->wc_status_to_string(response->status) << dendl;
- QueuePair *qp = get_qp(response->qp_num);
- if (qp)
- qp->dec_tx_wr(1);
-
if (response->status != IBV_WC_SUCCESS) {
perf_logger->inc(l_msgr_rdma_tx_total_wc_errors);
if (response->status == IBV_WC_RETRY_EXC_ERR) {