nvme/pcie, nvme/tcp: add cb_arg context tracepoint argument
This allows mapping an nvme_request back to the nvme_bdev_io. This requires bumping up the max number of arguments per tracepoint. 5 was previously chosen as max since it exactly fit in 64 bytes (1 cacheline) when all arguments were stored as uint64_t, but now that we support uint32_t arguments we can afford extra arguments when some of them are uint32_t. I've bumped it to 8 so we can avoid having to touch this value multiple times if we find some cases where we need 7 or 8 args. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Ie2ef5e59d10549860b47542e68c1c34efa63047f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13995 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
This commit is contained in:
parent
54f1603954
commit
e36f0d363e
@ -62,7 +62,7 @@ struct spdk_trace_object {
|
||||
#define SPDK_TRACE_ARG_TYPE_PTR 1
|
||||
#define SPDK_TRACE_ARG_TYPE_STR 2
|
||||
|
||||
#define SPDK_TRACE_MAX_ARGS_COUNT 5
|
||||
#define SPDK_TRACE_MAX_ARGS_COUNT 8
|
||||
#define SPDK_TRACE_MAX_RELATIONS 16
|
||||
|
||||
struct spdk_trace_argument {
|
||||
|
@ -629,7 +629,7 @@ nvme_pcie_qpair_submit_tracker(struct spdk_nvme_qpair *qpair, struct nvme_tracke
|
||||
req = tr->req;
|
||||
assert(req != NULL);
|
||||
|
||||
spdk_trace_record(TRACE_NVME_PCIE_SUBMIT, qpair->id, 0, (uintptr_t)req,
|
||||
spdk_trace_record(TRACE_NVME_PCIE_SUBMIT, qpair->id, 0, (uintptr_t)req, req->cb_arg,
|
||||
(uint32_t)req->cmd.cid, (uint32_t)req->cmd.opc,
|
||||
req->cmd.cdw10, req->cmd.cdw11, req->cmd.cdw12);
|
||||
|
||||
@ -676,7 +676,7 @@ nvme_pcie_qpair_complete_tracker(struct spdk_nvme_qpair *qpair, struct nvme_trac
|
||||
|
||||
req = tr->req;
|
||||
|
||||
spdk_trace_record(TRACE_NVME_PCIE_COMPLETE, qpair->id, 0, (uintptr_t)req,
|
||||
spdk_trace_record(TRACE_NVME_PCIE_COMPLETE, qpair->id, 0, (uintptr_t)req, req->cb_arg,
|
||||
(uint32_t)req->cmd.cid, (uint32_t)cpl->status_raw);
|
||||
|
||||
assert(req != NULL);
|
||||
@ -1818,7 +1818,8 @@ SPDK_TRACE_REGISTER_FN(nvme_pcie, "nvme_pcie", TRACE_GROUP_NVME_PCIE)
|
||||
{
|
||||
"NVME_PCIE_SUBMIT", TRACE_NVME_PCIE_SUBMIT,
|
||||
OWNER_NVME_PCIE_QP, OBJECT_NVME_PCIE_REQ, 1,
|
||||
{ { "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ { "ctx", SPDK_TRACE_ARG_TYPE_PTR, 8 },
|
||||
{ "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 },
|
||||
@ -1828,7 +1829,8 @@ SPDK_TRACE_REGISTER_FN(nvme_pcie, "nvme_pcie", TRACE_GROUP_NVME_PCIE)
|
||||
{
|
||||
"NVME_PCIE_COMPLETE", TRACE_NVME_PCIE_COMPLETE,
|
||||
OWNER_NVME_PCIE_QP, OBJECT_NVME_PCIE_REQ, 0,
|
||||
{ { "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ { "ctx", SPDK_TRACE_ARG_TYPE_PTR, 8 },
|
||||
{ "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ "cpl", SPDK_TRACE_ARG_TYPE_PTR, 4 }
|
||||
}
|
||||
},
|
||||
|
@ -731,7 +731,7 @@ 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,
|
||||
spdk_trace_record(TRACE_NVME_TCP_SUBMIT, qpair->id, 0, (uintptr_t)req, req->cb_arg,
|
||||
(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);
|
||||
@ -777,7 +777,7 @@ 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,
|
||||
spdk_trace_record(TRACE_NVME_TCP_COMPLETE, qpair->id, 0, (uintptr_t)req, req->cb_arg,
|
||||
(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);
|
||||
@ -2472,7 +2472,8 @@ SPDK_TRACE_REGISTER_FN(nvme_tcp, "nvme_tcp", TRACE_GROUP_NVME_TCP)
|
||||
{
|
||||
"NVME_TCP_SUBMIT", TRACE_NVME_TCP_SUBMIT,
|
||||
OWNER_NVME_TCP_QP, OBJECT_NVME_TCP_REQ, 1,
|
||||
{ { "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ { "ctx", SPDK_TRACE_ARG_TYPE_PTR, 8 },
|
||||
{ "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 },
|
||||
@ -2482,7 +2483,8 @@ SPDK_TRACE_REGISTER_FN(nvme_tcp, "nvme_tcp", TRACE_GROUP_NVME_TCP)
|
||||
{
|
||||
"NVME_TCP_COMPLETE", TRACE_NVME_TCP_COMPLETE,
|
||||
OWNER_NVME_TCP_QP, OBJECT_NVME_TCP_REQ, 0,
|
||||
{ { "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ { "ctx", SPDK_TRACE_ARG_TYPE_PTR, 8 },
|
||||
{ "cid", SPDK_TRACE_ARG_TYPE_INT, 4 },
|
||||
{ "cpl", SPDK_TRACE_ARG_TYPE_PTR, 4 }
|
||||
}
|
||||
},
|
||||
|
@ -6,7 +6,7 @@
|
||||
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
||||
|
||||
SO_VER := 6
|
||||
SO_VER := 7
|
||||
SO_MINOR := 0
|
||||
|
||||
C_SRCS = trace.c trace_flags.c trace_rpc.c
|
||||
|
@ -7,7 +7,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
||||
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
||||
|
||||
SO_VER := 2
|
||||
SO_VER := 3
|
||||
SO_MINOR := 0
|
||||
|
||||
CXX_SRCS = trace.cpp
|
||||
|
@ -6781,4 +6781,8 @@ SPDK_TRACE_REGISTER_FN(bdev_nvme_trace, "bdev_nvme", TRACE_GROUP_BDEV_NVME)
|
||||
|
||||
spdk_trace_register_object(OBJECT_BDEV_NVME_IO, 'N');
|
||||
spdk_trace_register_description_ext(opts, SPDK_COUNTOF(opts));
|
||||
spdk_trace_tpoint_register_relation(TRACE_NVME_PCIE_SUBMIT, OBJECT_BDEV_NVME_IO, 0);
|
||||
spdk_trace_tpoint_register_relation(TRACE_NVME_TCP_SUBMIT, OBJECT_BDEV_NVME_IO, 0);
|
||||
spdk_trace_tpoint_register_relation(TRACE_NVME_PCIE_COMPLETE, OBJECT_BDEV_NVME_IO, 0);
|
||||
spdk_trace_tpoint_register_relation(TRACE_NVME_TCP_COMPLETE, OBJECT_BDEV_NVME_IO, 0);
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ UCHAR_MAX = (1 << 8) - 1
|
||||
TRACE_MAX_LCORE = 128
|
||||
TRACE_MAX_GROUP_ID = 16
|
||||
TRACE_MAX_TPOINT_ID = TRACE_MAX_GROUP_ID * 64
|
||||
TRACE_MAX_ARGS_COUNT = 5
|
||||
TRACE_MAX_ARGS_COUNT = 8
|
||||
TRACE_MAX_RELATIONS = 16
|
||||
TRACE_INVALID_OBJECT = (1 << 64) - 1
|
||||
OBJECT_NONE = 0
|
||||
|
Loading…
Reference in New Issue
Block a user