Commit c71153a8 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

nvme/tcp: add logging to nvme_tcp_qpair_set_state



The qpair state is set in multiple code paths. Having
nvme_tcp_qpair_set_state as a macro makes it possible to see the caller.

Moreover, added qpair's state to ERRLOG. Intentionally skipped DEBUGLOG
as it is covered by the nvme_tcp_qpair_set_state now.

Change-Id: I184b9d604915586537b9356865de14f0c8a1c6b5
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26588


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
parent 54854b99
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -36,13 +36,14 @@
#define NVME_TCP_MAX_R2T_DEFAULT		1
#define NVME_TCP_PDU_H2C_MIN_DATA_SIZE		4096

#define NVME_TQPAIR_ERRLOG(tqpair, format, ...) NVME_QPAIR_ERRLOG((tqpair) ? &(tqpair)->qpair : NULL, format, ##__VA_ARGS__)
#define NVME_TQPAIR_ERRLOG(tqpair, format, ...) NVME_QPAIR_ERRLOG((tqpair) ? &(tqpair)->qpair : NULL, "[%s] " format, (tqpair) ? nvme_tcp_qpair_state_string((tqpair)->state) : "", ##__VA_ARGS__)
#define NVME_TQPAIR_WARNLOG(tqpair, format, ...) NVME_QPAIR_WARNLOG((tqpair) ? &(tqpair)->qpair : NULL, format, ##__VA_ARGS__)
#define NVME_TQPAIR_NOTICELOG(tqpair, format, ...) NVME_QPAIR_NOTICELOG((tqpair) ? &(tqpair)->qpair : NULL, format, ##__VA_ARGS__)
#define NVME_TQPAIR_INFOLOG(tqpair, format, ...) NVME_QPAIR_INFOLOG((tqpair) ? &(tqpair)->qpair : NULL, format, ##__VA_ARGS__)
#define NVME_TQPAIR_DEBUGLOG(tqpair, format, ...) NVME_QPAIR_DEBUGLOG((tqpair) ? &(tqpair)->qpair : NULL, format, ##__VA_ARGS__)

#define nvme_tcp_qpair_set_state(_qpair, _state) do { \
	NVME_TQPAIR_DEBUGLOG((_qpair), "setting tqpair state to %s\n", nvme_tcp_qpair_state_string((_state))); \
	(_qpair)->state = (_state); \
} while (0)

@@ -192,6 +193,33 @@ static void nvme_tcp_icresp_handle(struct nvme_tcp_qpair *tqpair, struct nvme_tc
static void nvme_tcp_req_complete(struct nvme_tcp_req *tcp_req, struct nvme_tcp_qpair *tqpair,
				  struct spdk_nvme_cpl *rsp, bool print_on_error);

static inline const char *
nvme_tcp_qpair_state_string(enum nvme_tcp_qpair_state state)
{
	switch (state) {
	case NVME_TCP_QPAIR_STATE_INVALID:
		return "INVALID";
	case NVME_TCP_QPAIR_STATE_SOCK_CONNECTING:
		return "SOCK_CONNECTING";
	case NVME_TCP_QPAIR_STATE_INITIALIZING:
		return "INITIALIZING";
	case NVME_TCP_QPAIR_STATE_FABRIC_CONNECT_SEND:
		return "FABRIC_CONNECT_SEND";
	case NVME_TCP_QPAIR_STATE_FABRIC_CONNECT_POLL:
		return "FABRIC_CONNECT_POLL";
	case NVME_TCP_QPAIR_STATE_AUTHENTICATING:
		return "AUTHENTICATING";
	case NVME_TCP_QPAIR_STATE_RUNNING:
		return "RUNNING";
	case NVME_TCP_QPAIR_STATE_EXITING:
		return "EXITING";
	case NVME_TCP_QPAIR_STATE_EXITED:
		return "EXITED";
	default:
		return "UNKNOWN";
	}
}

static inline struct nvme_tcp_qpair *
nvme_tcp_qpair(struct spdk_nvme_qpair *qpair)
{