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

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Iad56e7a96cf0210bcf54825c8bcc39af9366b72c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13992
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com>
This commit is contained in:
Jim Harris 2022-08-10 20:36:57 +00:00 committed by Tomasz Zawadzki
parent 9396cb9a94
commit a6b7e1839d
2 changed files with 40 additions and 0 deletions

View File

@ -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 */

View File

@ -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));
}