nvme/rdma: Use RDMA provider API to send WRs
Change-Id: I3dc87751d250da84d988b1c7a9c57112b5bd10b0 Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1661 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Seth Howell <seth.howell@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
bbb493ce0c
commit
8c6a345534
@ -563,21 +563,21 @@ nvme_rdma_qpair_submit_sends(struct nvme_rdma_qpair *rqpair)
|
||||
struct ibv_send_wr *bad_send_wr;
|
||||
int rc;
|
||||
|
||||
if (rqpair->sends_to_post.first) {
|
||||
rc = ibv_post_send(rqpair->rdma_qp->qp, rqpair->sends_to_post.first, &bad_send_wr);
|
||||
if (spdk_unlikely(rc)) {
|
||||
SPDK_ERRLOG("Failed to post WRs on send queue, errno %d (%s), bad_wr %p\n",
|
||||
rc, spdk_strerror(rc), bad_send_wr);
|
||||
/* Restart queue from bad wr. If it failed during
|
||||
* completion processing, controller will be moved to
|
||||
* failed state. Otherwise it will likely fail again
|
||||
* in next submit attempt from completion processing.
|
||||
*/
|
||||
rqpair->sends_to_post.first = bad_send_wr;
|
||||
return -1;
|
||||
}
|
||||
rqpair->sends_to_post.first = NULL;
|
||||
rc = spdk_rdma_qp_flush_send_wrs(rqpair->rdma_qp, &bad_send_wr);
|
||||
|
||||
if (spdk_unlikely(rc)) {
|
||||
SPDK_ERRLOG("Failed to post WRs on send queue, errno %d (%s), bad_wr %p\n",
|
||||
rc, spdk_strerror(rc), bad_send_wr);
|
||||
|
||||
/* Restart queue from bad wr. If it failed during
|
||||
* completion processing, controller will be moved to
|
||||
* failed state. Otherwise it will likely fail again
|
||||
* in next submit attempt from completion processing.
|
||||
*/
|
||||
spdk_rdma_qp_queue_send_wrs(rqpair->rdma_qp, bad_send_wr);
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -612,13 +612,7 @@ nvme_rdma_qpair_queue_send_wr(struct nvme_rdma_qpair *rqpair, struct ibv_send_wr
|
||||
{
|
||||
assert(wr->next == NULL);
|
||||
|
||||
if (rqpair->sends_to_post.first == NULL) {
|
||||
rqpair->sends_to_post.first = wr;
|
||||
} else {
|
||||
rqpair->sends_to_post.last->next = wr;
|
||||
}
|
||||
|
||||
rqpair->sends_to_post.last = wr;
|
||||
spdk_rdma_qp_queue_send_wrs(rqpair->rdma_qp, wr);
|
||||
|
||||
if (!rqpair->delay_cmd_submit) {
|
||||
return nvme_rdma_qpair_submit_sends(rqpair);
|
||||
|
Loading…
Reference in New Issue
Block a user