Commit a6b7e183 authored by Jim Harris's avatar Jim Harris Committed by Tomasz Zawadzki
Browse files

nvme/tcp: add trace points for cmd submit/complete



Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Iad56e7a96cf0210bcf54825c8bcc39af9366b72c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13992


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
parent 9396cb9a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#define OWNER_ISCSI_CONN	0x1
#define OWNER_BDEV		0x2
#define OWNER_NVME_PCIE_QP	0x3
#define OWNER_NVME_TCP_QP	0x4
#define OWNER_SCSI_DEV		0x10
#define OWNER_FTL		0x20
#define OWNER_NVMF_TCP		0x30
@@ -19,6 +20,7 @@
#define OBJECT_ISCSI_PDU	0x1
#define OBJECT_BDEV_IO		0x2
#define OBJECT_NVME_PCIE_REQ	0x3
#define OBJECT_NVME_TCP_REQ	0x4
#define OBJECT_SCSI_TASK	0x10
#define OBJECT_NVMF_RDMA_IO	0x40
#define OBJECT_NVMF_TCP_IO	0x80
@@ -37,6 +39,7 @@
#define TRACE_GROUP_THREAD	0xA
#define TRACE_GROUP_NVME_PCIE	0xB
#define TRACE_GROUP_ACCEL_IAA	0xC
#define TRACE_GROUP_NVME_TCP	0xD

/* Bdev tracepoint definitions */
#define TRACE_BDEV_IO_START		SPDK_TPOINT_ID(TRACE_GROUP_BDEV, 0x0)
@@ -144,4 +147,8 @@
#define TRACE_ACCEL_IAA_OP_SUBMIT	SPDK_TPOINT_ID(TRACE_GROUP_ACCEL_IAA, 0x0)
#define TRACE_ACCEL_IAA_OP_COMPLETE	SPDK_TPOINT_ID(TRACE_GROUP_ACCEL_IAA, 0x1)

/* NVMe TCP tracepoint definitions */
#define TRACE_NVME_TCP_SUBMIT		SPDK_TPOINT_ID(TRACE_GROUP_NVME_TCP, 0x0)
#define TRACE_NVME_TCP_COMPLETE		SPDK_TPOINT_ID(TRACE_GROUP_NVME_TCP, 0x1)

#endif /* SPDK_INTERNAL_TRACE_DEFS */
+33 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include "spdk/util.h"

#include "spdk_internal/nvme_tcp.h"
#include "spdk_internal/trace_defs.h"

#define NVME_TCP_RW_BUFFER_SIZE 131072
#define NVME_TCP_TIME_OUT_IN_SECONDS 2
@@ -730,6 +731,9 @@ nvme_tcp_qpair_submit_request(struct spdk_nvme_qpair *qpair,
		return -1;
	}

	spdk_trace_record(TRACE_NVME_TCP_SUBMIT, qpair->id, 0, (uintptr_t)req,
			  (uint32_t)req->cmd.cid, (uint32_t)req->cmd.opc,
			  req->cmd.cdw10, req->cmd.cdw11, req->cmd.cdw12);
	TAILQ_INSERT_TAIL(&tqpair->outstanding_reqs, tcp_req, link);
	return nvme_tcp_qpair_capsule_cmd_send(tqpair, tcp_req);
}
@@ -773,6 +777,8 @@ nvme_tcp_req_complete(struct nvme_tcp_req *tcp_req,
		spdk_nvme_qpair_print_completion(qpair, rsp);
	}

	spdk_trace_record(TRACE_NVME_TCP_COMPLETE, qpair->id, 0, (uintptr_t)req,
			  (uint32_t)req->cmd.cid, (uint32_t)cpl.status_raw);
	TAILQ_REMOVE(&tcp_req->tqpair->outstanding_reqs, tcp_req, link);
	nvme_tcp_req_put(tqpair, tcp_req);
	nvme_free_request(req);
@@ -2456,3 +2462,30 @@ const struct spdk_nvme_transport_ops tcp_ops = {
};

SPDK_NVME_TRANSPORT_REGISTER(tcp, &tcp_ops);

SPDK_TRACE_REGISTER_FN(nvme_tcp, "nvme_tcp", TRACE_GROUP_NVME_TCP)
{
	struct spdk_trace_tpoint_opts opts[] = {
		{
			"NVME_TCP_SUBMIT", TRACE_NVME_TCP_SUBMIT,
			OWNER_NVME_TCP_QP, OBJECT_NVME_TCP_REQ, 1,
			{	{ "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
				{ "opc", SPDK_TRACE_ARG_TYPE_INT, 4 },
				{ "dw10", SPDK_TRACE_ARG_TYPE_PTR, 4 },
				{ "dw11", SPDK_TRACE_ARG_TYPE_PTR, 4 },
				{ "dw12", SPDK_TRACE_ARG_TYPE_PTR, 4 }
			}
		},
		{
			"NVME_TCP_COMPLETE", TRACE_NVME_TCP_COMPLETE,
			OWNER_NVME_TCP_QP, OBJECT_NVME_TCP_REQ, 0,
			{	{ "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
				{ "cpl", SPDK_TRACE_ARG_TYPE_PTR, 4 }
			}
		},
	};

	spdk_trace_register_object(OBJECT_NVME_TCP_REQ, 'p');
	spdk_trace_register_owner(OWNER_NVME_TCP_QP, 'q');
	spdk_trace_register_description_ext(opts, SPDK_COUNTOF(opts));
}