From: Johannes Thumshirn <jthumshirn@suse.de> To: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagi@grimberg.me>, Keith Busch <keith.busch@intel.com>, Linux Kernel Mailinglist <linux-kernel@vger.kernel.org>, Hannes Reinecke <hare@suse.de>, Linux NVMe Mailinglist <linux-nvme@lists.infradead.org>, Johannes Thumshirn <jthumshirn@suse.de> Subject: [PATCH v3 2/2] nvme: add tracepoint for nvme_complete_rq Date: Wed, 17 Jan 2018 11:53:36 +0100 [thread overview] Message-ID: <20180117105336.8666-3-jthumshirn@suse.de> (raw) In-Reply-To: <20180117105336.8666-1-jthumshirn@suse.de> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Hannes Reinecke <hare@suse.com> --- Changes to v2: * Pass the whole struct request to the tracepoint * Removed spaces after parenthesis (Christoph) --- drivers/nvme/host/core.c | 2 ++ drivers/nvme/host/trace.h | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 9c5d476c8c6d..c61014d56279 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -193,6 +193,8 @@ static inline bool nvme_req_needs_retry(struct request *req) void nvme_complete_rq(struct request *req) { + trace_nvme_complete_rq(req); + if (unlikely(nvme_req(req)->status && nvme_req_needs_retry(req))) { if (nvme_req_needs_failover(req)) { nvme_failover_req(req); diff --git a/drivers/nvme/host/trace.h b/drivers/nvme/host/trace.h index a168d806d494..b416dc0760c1 100644 --- a/drivers/nvme/host/trace.h +++ b/drivers/nvme/host/trace.h @@ -22,6 +22,8 @@ #include <linux/tracepoint.h> #include <linux/trace_seq.h> +#include "nvme.h" + #define nvme_opcode_name(opcode) { opcode, #opcode } #define show_opcode_name(val) \ __print_symbolic(val, \ @@ -66,6 +68,30 @@ TRACE_EVENT(nvme_setup_cmd, __parse_nvme_cmd(__entry->cmnd)) ); +TRACE_EVENT(nvme_complete_rq, + TP_PROTO(struct request *req), + TP_ARGS(req), + TP_STRUCT__entry( + __field(int, cid) + __field(__le64, result) + __field(u8, retries) + __field(u8, flags) + __field(u16, status) + ), + TP_fast_assign( + __entry->cid = req->tag; + __entry->result = nvme_req(req)->result.u64; + __entry->retries = nvme_req(req)->retries; + __entry->flags = nvme_req(req)->flags; + __entry->status = nvme_req(req)->status; + ), + TP_printk("cmdid=%u, res=%llu, retries=%u, flags=0x%x, status=%u", + __entry->cid, + le64_to_cpu(__entry->result), + __entry->retries, __entry->flags, __entry->status) + +); + #endif /* _TRACE_NVME_H */ #undef TRACE_INCLUDE_PATH -- 2.12.3
WARNING: multiple messages have this Message-ID (diff)
From: jthumshirn@suse.de (Johannes Thumshirn) Subject: [PATCH v3 2/2] nvme: add tracepoint for nvme_complete_rq Date: Wed, 17 Jan 2018 11:53:36 +0100 [thread overview] Message-ID: <20180117105336.8666-3-jthumshirn@suse.de> (raw) In-Reply-To: <20180117105336.8666-1-jthumshirn@suse.de> Signed-off-by: Johannes Thumshirn <jthumshirn at suse.de> Reviewed-by: Hannes Reinecke <hare at suse.com> --- Changes to v2: * Pass the whole struct request to the tracepoint * Removed spaces after parenthesis (Christoph) --- drivers/nvme/host/core.c | 2 ++ drivers/nvme/host/trace.h | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 9c5d476c8c6d..c61014d56279 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -193,6 +193,8 @@ static inline bool nvme_req_needs_retry(struct request *req) void nvme_complete_rq(struct request *req) { + trace_nvme_complete_rq(req); + if (unlikely(nvme_req(req)->status && nvme_req_needs_retry(req))) { if (nvme_req_needs_failover(req)) { nvme_failover_req(req); diff --git a/drivers/nvme/host/trace.h b/drivers/nvme/host/trace.h index a168d806d494..b416dc0760c1 100644 --- a/drivers/nvme/host/trace.h +++ b/drivers/nvme/host/trace.h @@ -22,6 +22,8 @@ #include <linux/tracepoint.h> #include <linux/trace_seq.h> +#include "nvme.h" + #define nvme_opcode_name(opcode) { opcode, #opcode } #define show_opcode_name(val) \ __print_symbolic(val, \ @@ -66,6 +68,30 @@ TRACE_EVENT(nvme_setup_cmd, __parse_nvme_cmd(__entry->cmnd)) ); +TRACE_EVENT(nvme_complete_rq, + TP_PROTO(struct request *req), + TP_ARGS(req), + TP_STRUCT__entry( + __field(int, cid) + __field(__le64, result) + __field(u8, retries) + __field(u8, flags) + __field(u16, status) + ), + TP_fast_assign( + __entry->cid = req->tag; + __entry->result = nvme_req(req)->result.u64; + __entry->retries = nvme_req(req)->retries; + __entry->flags = nvme_req(req)->flags; + __entry->status = nvme_req(req)->status; + ), + TP_printk("cmdid=%u, res=%llu, retries=%u, flags=0x%x, status=%u", + __entry->cid, + le64_to_cpu(__entry->result), + __entry->retries, __entry->flags, __entry->status) + +); + #endif /* _TRACE_NVME_H */ #undef TRACE_INCLUDE_PATH -- 2.12.3
next prev parent reply other threads:[~2018-01-17 10:54 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-01-17 10:53 [PATCH v3 0/2] add tracepoints for nvme command submission and completion Johannes Thumshirn 2018-01-17 10:53 ` Johannes Thumshirn 2018-01-17 10:53 ` [PATCH v3 1/2] nvme: add tracepoint for nvme_setup_cmd Johannes Thumshirn 2018-01-17 10:53 ` Johannes Thumshirn 2018-01-18 1:55 ` Martin K. Petersen 2018-01-18 1:55 ` Martin K. Petersen 2018-01-18 3:18 ` Keith Busch 2018-01-18 3:18 ` Keith Busch 2018-01-18 15:21 ` Christoph Hellwig 2018-01-18 15:21 ` Christoph Hellwig 2018-01-18 15:32 ` Johannes Thumshirn 2018-01-18 15:32 ` Johannes Thumshirn 2018-01-17 10:53 ` Johannes Thumshirn [this message] 2018-01-17 10:53 ` [PATCH v3 2/2] nvme: add tracepoint for nvme_complete_rq Johannes Thumshirn 2018-01-18 1:56 ` Martin K. Petersen 2018-01-18 1:56 ` Martin K. Petersen 2018-01-18 3:18 ` Keith Busch 2018-01-18 3:18 ` Keith Busch
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180117105336.8666-3-jthumshirn@suse.de \ --to=jthumshirn@suse.de \ --cc=hare@suse.de \ --cc=hch@lst.de \ --cc=keith.busch@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvme@lists.infradead.org \ --cc=sagi@grimberg.me \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.