return qp;
}
-int Infiniband::post_chunks_to_rq(int rq_wr_num, ibv_qp *qp)
+int Infiniband::post_chunks_to_rq(int rq_wr_num, QueuePair *qp)
{
int ret = 0;
Chunk *chunk = nullptr;
ret = ibv_post_srq_recv(srq, rx_work_request, &badworkrequest);
} else {
ceph_assert(qp);
- ret = ibv_post_recv(qp, rx_work_request, &badworkrequest);
+ ret = ibv_post_recv(qp->get_qp(), rx_work_request, &badworkrequest);
}
::free(rx_work_request);
ibv_qp_type type, struct rdma_cm_id *cm_id);
ibv_srq* create_shared_receive_queue(uint32_t max_wr, uint32_t max_sge);
// post rx buffers to srq, return number of buffers actually posted
- int post_chunks_to_rq(int num, ibv_qp *qp=NULL);
+ int post_chunks_to_rq(int num, QueuePair *qp = nullptr);
void post_chunk_to_pool(Chunk* chunk) {
get_memory_manager()->release_rx_buffer(chunk);
}
void RDMAConnectedSocketImpl::post_chunks_to_rq(int num)
{
- post_backlog += num - ib->post_chunks_to_rq(num, qp->get_qp());
+ post_backlog += num - ib->post_chunks_to_rq(num, qp);
}
void RDMAConnectedSocketImpl::update_post_backlog()
{
if (post_backlog)
- post_backlog -= post_backlog - dispatcher->post_chunks_to_rq(post_backlog, qp->get_qp());
+ post_backlog -= post_backlog - dispatcher->post_chunks_to_rq(post_backlog, qp);
}
return -1;
}
if (!cct->_conf->ms_async_rdma_support_srq)
- dispatcher->post_chunks_to_rq(ib->get_rx_queue_len(), qp->get_qp());
+ dispatcher->post_chunks_to_rq(ib->get_rx_queue_len(), qp);
dispatcher->register_qp(qp, this);
dispatcher->perf_logger->inc(l_msgr_rdma_created_queue_pair);
dispatcher->perf_logger->inc(l_msgr_rdma_active_queue_pair);
perf_logger->dec(l_msgr_rdma_rx_bufs_in_use);
}
-int RDMADispatcher::post_chunks_to_rq(int num, ibv_qp *qp)
+int RDMADispatcher::post_chunks_to_rq(int num, QueuePair *qp)
{
std::lock_guard l{lock};
return ib->post_chunks_to_rq(num, qp);
std::atomic<uint64_t> inflight = {0};
void post_chunk_to_pool(Chunk* chunk);
- int post_chunks_to_rq(int num, ibv_qp *qp=NULL);
+ int post_chunks_to_rq(int num, QueuePair *qp = nullptr);
};
class RDMAWorker : public Worker {