Commit 527f406b authored by Alexey Marchuk's avatar Alexey Marchuk Committed by Tomasz Zawadzki
Browse files

nvme/rdma: Use RDMA statistics



These statistics allow to estimate WRs batching
efficiency. The number of send WRs equals the total
number of submitted NVME commands.

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


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 4e8032ab
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -148,11 +148,16 @@ struct nvme_rdma_destroyed_qpair {
	STAILQ_ENTRY(nvme_rdma_destroyed_qpair)	link;
};

struct nvme_rdma_poller_stats {
	struct spdk_rdma_qp_stats rdma_stats;
};

struct nvme_rdma_poller {
	struct ibv_context		*device;
	struct ibv_cq			*cq;
	int				required_num_wc;
	int				current_num_wc;
	struct nvme_rdma_poller_stats	stats;
	STAILQ_ENTRY(nvme_rdma_poller)	link;
};

@@ -220,6 +225,7 @@ struct nvme_rdma_qpair {

	/* Placed at the end of the struct since it is not used frequently */
	struct rdma_cm_event			*evt;
	struct nvme_rdma_poller			*poller;

	/* Used by poll group to keep the qpair around until it is ready to remove it. */
	bool					defer_deletion_to_pg;
@@ -601,6 +607,7 @@ nvme_rdma_qpair_init(struct nvme_rdma_qpair *rqpair)
	}

	attr.pd =		rctrlr->pd;
	attr.stats =		rqpair->poller ? &rqpair->poller->stats.rdma_stats : NULL;
	attr.send_cq		= rqpair->cq;
	attr.recv_cq		= rqpair->cq;
	attr.cap.max_send_wr	= rqpair->num_entries; /* SEND operations */
@@ -2420,6 +2427,7 @@ nvme_rdma_poll_group_connect_qpair(struct spdk_nvme_qpair *qpair)
				return -EPROTO;
			}
			rqpair->cq = poller->cq;
			rqpair->poller = poller;
			break;
		}
	}