RDMA: fixing create qp failure due to not suppored send sge number,
some vendorse support less send sge then SPDK_NVMF_MAX_SGL_ENTRIES. Change-Id: I5b550b537b6ff4ae5d7876a3f277f88cf06049e4 Signed-off-by: Leonid Ravich <Leonid.Ravich@dell.com> Reviewed-on: https://review.gerrithub.io/421012 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
parent
008ec0bd91
commit
eaea3f24cc
@ -230,6 +230,8 @@ struct spdk_nvmf_rdma_qpair {
|
||||
/* Number of requests in each state */
|
||||
uint32_t state_cntr[RDMA_REQUEST_NUM_STATES];
|
||||
|
||||
int max_sge;
|
||||
|
||||
/* Array of size "max_queue_depth" containing RDMA requests. */
|
||||
struct spdk_nvmf_rdma_request *reqs;
|
||||
|
||||
@ -561,7 +563,7 @@ spdk_nvmf_rdma_qpair_initialize(struct spdk_nvmf_qpair *qpair)
|
||||
rqpair->ibv_init_attr.cap.max_send_wr = rqpair->max_queue_depth *
|
||||
2; /* SEND, READ, and WRITE operations */
|
||||
rqpair->ibv_init_attr.cap.max_recv_wr = rqpair->max_queue_depth; /* RECV operations */
|
||||
rqpair->ibv_init_attr.cap.max_send_sge = SPDK_NVMF_MAX_SGL_ENTRIES;
|
||||
rqpair->ibv_init_attr.cap.max_send_sge = rqpair->max_sge;
|
||||
rqpair->ibv_init_attr.cap.max_recv_sge = NVMF_DEFAULT_RX_SGE;
|
||||
|
||||
rc = rdma_create_qp(rqpair->cm_id, NULL, &rqpair->ibv_init_attr);
|
||||
@ -918,6 +920,7 @@ nvmf_rdma_connect(struct spdk_nvmf_transport *transport, struct rdma_cm_event *e
|
||||
rqpair->max_rw_depth = max_rw_depth;
|
||||
rqpair->cm_id = event->id;
|
||||
rqpair->qpair.transport = transport;
|
||||
rqpair->max_sge = spdk_min(port->device->attr.max_sge, SPDK_NVMF_MAX_SGL_ENTRIES);
|
||||
TAILQ_INIT(&rqpair->incoming_queue);
|
||||
event->id->context = &rqpair->qpair;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user