Commit c69768bd authored by Marcin Spiewak's avatar Marcin Spiewak Committed by Tomasz Zawadzki
Browse files

nvmf: add more debug logs related to cntlid and qid



This patch is created to help in debugging github
issue #3366, some additional debug messages focused
on displaying cntlid and qid are added.

Change-Id: I378c215d5f4e9887dcad910392eb9c2194fc4243
Signed-off-by: default avatarMarcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23409


Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 7d5421b6
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -291,15 +291,16 @@ nvmf_ctrlr_add_qpair(struct spdk_nvmf_qpair *qpair,

	if (spdk_bit_array_get(ctrlr->qpair_mask, qpair->qid)) {
		if (qpair->connect_req != NULL) {
			SPDK_ERRLOG("Got I/O connect with duplicate QID %u\n", qpair->qid);
			SPDK_ERRLOG("Got I/O connect with duplicate QID %u (cntlid:%u)\n",
				    qpair->qid, ctrlr->cntlid);
			rsp->status.sct = SPDK_NVME_SCT_COMMAND_SPECIFIC;
			rsp->status.sc = SPDK_NVME_SC_INVALID_QUEUE_IDENTIFIER;
			qpair->connect_req = NULL;
			qpair->ctrlr = NULL;
			spdk_nvmf_request_complete(req);
		} else {
			SPDK_WARNLOG("Duplicate QID (%d) detected, re-check in %dus\n",
				     qpair->qid, DUPLICATE_QID_RETRY_US);
			SPDK_WARNLOG("Duplicate QID detected (cntlid:%u, qid:%u), re-check in %dus\n",
				     ctrlr->cntlid, qpair->qid, DUPLICATE_QID_RETRY_US);
			qpair->connect_req = req;
			/* Set qpair->ctrlr here so that we'll have it when the poller expires. */
			nvmf_qpair_set_ctrlr(qpair, ctrlr);
@@ -313,6 +314,7 @@ nvmf_ctrlr_add_qpair(struct spdk_nvmf_qpair *qpair,
				 ctrlr->hostnqn);
	nvmf_qpair_set_ctrlr(qpair, ctrlr);
	spdk_bit_array_set(ctrlr->qpair_mask, qpair->qid);
	SPDK_DEBUGLOG(nvmf, "qpair_mask set, qid %u\n", qpair->qid);

	spdk_thread_send_msg(qpair->group->thread, nvmf_ctrlr_send_connect_rsp, req);
}
@@ -4390,7 +4392,8 @@ nvmf_ctrlr_process_io_cmd(struct spdk_nvmf_request *req)
	} else if (spdk_unlikely(qpair->first_fused_req != NULL)) {
		struct spdk_nvme_cpl *fused_response = &qpair->first_fused_req->rsp->nvme_cpl;

		SPDK_ERRLOG("Second fused cmd expected - failing first one (opcode:0x%x)\n",
		SPDK_ERRLOG("Second fused cmd expected - failing first one (cntlid:%u, qid:%u, opcode:0x%x)\n",
			    ctrlr->cntlid, qpair->qid,
			    req->qpair->first_fused_req->cmd->nvmf_cmd.opcode);

		/* abort qpair->first_fused_request and continue with new command */
+1 −0
Original line number Diff line number Diff line
@@ -1242,6 +1242,7 @@ _nvmf_ctrlr_free_from_qpair(void *ctx)
	uint32_t count;

	spdk_bit_array_clear(ctrlr->qpair_mask, qpair_ctx->qid);
	SPDK_DEBUGLOG(nvmf, "qpair_mask cleared, qid %u\n", qpair_ctx->qid);
	count = spdk_bit_array_count_set(ctrlr->qpair_mask);
	if (count == 0) {
		assert(!ctrlr->in_destruct);
+2 −1
Original line number Diff line number Diff line
@@ -3332,7 +3332,8 @@ nvmf_tcp_req_complete(struct spdk_nvmf_request *req)
		nvmf_tcp_req_set_state(tcp_req, TCP_REQUEST_STATE_COMPLETED);
		break;
	default:
		SPDK_ERRLOG("Unexpected request state %d\n", tcp_req->state);
		SPDK_ERRLOG("Unexpected request state %d (cntlid:%d, qid:%d)\n",
			    tcp_req->state, req->qpair->ctrlr->cntlid, req->qpair->qid);
		assert(0 && "Unexpected request state");
		break;
	}