Commit fa757dc9 authored by Seth Howell's avatar Seth Howell Committed by Jim Harris
Browse files

rdma: dump outstanding requests from rqpairs



If this happens, we have something going seriously wrong and we need as
much debug information as we can get.

Change-Id: I305512790461443316b9f231fa2afeb69593af1b
Signed-off-by: default avatarSeth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/438097


Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 8c4ed83b
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -583,6 +583,28 @@ spdk_nvmf_rdma_cur_queue_depth(struct spdk_nvmf_rdma_qpair *rqpair)
	       rqpair->state_cntr[RDMA_REQUEST_STATE_FREE];
}

static void
nvmf_rdma_dump_request(struct spdk_nvmf_rdma_request *req)
{
	SPDK_ERRLOG("\t\tRequest Data From Pool: %d\n", req->data_from_pool);
	SPDK_ERRLOG("\t\tRequest opcode: %d\n", req->req.cmd->nvmf_cmd.opcode);
	SPDK_ERRLOG("\t\tRequest recv wr_id%lu\n", req->recv->wr.wr_id);
}

static void
nvmf_rdma_dump_qpair_contents(struct spdk_nvmf_rdma_qpair *rqpair)
{
	int i;
	struct spdk_nvmf_rdma_request *req;
	SPDK_ERRLOG("Dumping contents of queue pair (QID %d)\n", rqpair->qpair.qid);
	for (i = 1; i < RDMA_REQUEST_NUM_STATES; i++) {
		SPDK_ERRLOG("\tdumping requests in state %d\n", i);
		TAILQ_FOREACH(req, &rqpair->state_queue[i], state_link) {
			nvmf_rdma_dump_request(req);
		}
	}
}

static void
spdk_nvmf_rdma_qpair_destroy(struct spdk_nvmf_rdma_qpair *rqpair)
{
@@ -596,6 +618,7 @@ spdk_nvmf_rdma_qpair_destroy(struct spdk_nvmf_rdma_qpair *rqpair)

	qd = spdk_nvmf_rdma_cur_queue_depth(rqpair);
	if (qd != 0) {
		nvmf_rdma_dump_qpair_contents(rqpair);
		SPDK_WARNLOG("Destroying qpair when queue depth is %d\n", qd);
	}