Commit 3838d4d2 authored by Alexey Marchuk's avatar Alexey Marchuk Committed by Tomasz Zawadzki
Browse files

nvmf/rdma: Check device max_srq_wr when creating SRQ



Some devices may support SRQ depth lower than defaulut
value 4096

Signed-off-by: default avatarAlexey Marchuk <alexeymar@mellanox.com>
Change-Id: I58da0ac268a6d4c4a7e3b500ae37b8fad4810e17
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10654


Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 2b565885
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -3274,7 +3274,11 @@ nvmf_rdma_poll_group_create(struct spdk_nvmf_transport *transport)

		TAILQ_INSERT_TAIL(&rgroup->pollers, poller, link);
		if (rtransport->rdma_opts.no_srq == false && device->num_srq < device->attr.max_srq) {
			poller->max_srq_depth = rtransport->rdma_opts.max_srq_depth;
			if ((int)rtransport->rdma_opts.max_srq_depth > device->attr.max_srq_wr) {
				SPDK_WARNLOG("Requested SRQ depth %u, max supported by dev %s is %d\n",
					     rtransport->rdma_opts.max_srq_depth, device->context->device->name, device->attr.max_srq_wr);
			}
			poller->max_srq_depth = spdk_min((int)rtransport->rdma_opts.max_srq_depth, device->attr.max_srq_wr);

			device->num_srq++;
			memset(&srq_init_attr, 0, sizeof(srq_init_attr));