Commit eaea3f24 authored by Leonid Ravich's avatar Leonid Ravich Committed by Jim Harris
Browse files

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: default avatarLeonid Ravich <Leonid.Ravich@dell.com>
Reviewed-on: https://review.gerrithub.io/421012


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
parent 008ec0bd
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;