nvme_rdma: Pass pd instead of cm_id to nvme_rdma_reg_mr()

The following patches will create and use ibv_context and pd
explicitly instead of using default ibv_context and pd created
by rdmacm.

As a preparation, pass pd instead of cm_id to nvme_rdma_reg_mr().

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Signed-off-by: Denis Nagorny <denisn@nvidia.com>
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: Ifdcd18ed363b8ba4a23a920bf3559237e38821c6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13599
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Shuhei Matsumoto 2022-06-30 14:42:36 +09:00 committed by Tomasz Zawadzki
parent 89c1e5bfc0
commit a3a51453b8

View File

@ -901,17 +901,17 @@ nvme_rdma_post_recv(struct nvme_rdma_qpair *rqpair, uint16_t rsp_idx)
} }
static int static int
nvme_rdma_reg_mr(struct rdma_cm_id *cm_id, union nvme_rdma_mr *mr, void *mem, size_t length) nvme_rdma_reg_mr(struct ibv_pd *pd, union nvme_rdma_mr *mr, void *mem, size_t length)
{ {
if (!g_nvme_hooks.get_rkey) { if (!g_nvme_hooks.get_rkey) {
mr->mr = rdma_reg_msgs(cm_id, mem, length); mr->mr = ibv_reg_mr(pd, mem, length, IBV_ACCESS_LOCAL_WRITE);
if (mr->mr == NULL) { if (mr->mr == NULL) {
SPDK_ERRLOG("Unable to register mr: %s (%d)\n", SPDK_ERRLOG("Unable to register mr: %s (%d)\n",
spdk_strerror(errno), errno); spdk_strerror(errno), errno);
return -1; return -1;
} }
} else { } else {
mr->key = g_nvme_hooks.get_rkey(cm_id->pd, mem, length); mr->key = g_nvme_hooks.get_rkey(pd, mem, length);
} }
return 0; return 0;
@ -1000,7 +1000,7 @@ nvme_rdma_register_rsps(struct nvme_rdma_qpair *rqpair)
int rc; int rc;
uint32_t lkey; uint32_t lkey;
rc = nvme_rdma_reg_mr(rqpair->cm_id, &rqpair->rsp_mr, rc = nvme_rdma_reg_mr(rqpair->cm_id->pd, &rqpair->rsp_mr,
rqpair->rsps, rqpair->num_entries * sizeof(*rqpair->rsps)); rqpair->rsps, rqpair->num_entries * sizeof(*rqpair->rsps));
if (rc < 0) { if (rc < 0) {
@ -1121,7 +1121,7 @@ nvme_rdma_register_reqs(struct nvme_rdma_qpair *rqpair)
int rc; int rc;
uint32_t lkey; uint32_t lkey;
rc = nvme_rdma_reg_mr(rqpair->cm_id, &rqpair->cmd_mr, rc = nvme_rdma_reg_mr(rqpair->cm_id->pd, &rqpair->cmd_mr,
rqpair->cmds, rqpair->num_entries * sizeof(*rqpair->cmds)); rqpair->cmds, rqpair->num_entries * sizeof(*rqpair->cmds));
if (rc < 0) { if (rc < 0) {