All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nvme: trace: parse format nvm command in detail
@ 2021-01-04 15:53 Michal Krakowiak
  2021-01-04 16:02 ` Keith Busch
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Michal Krakowiak @ 2021-01-04 15:53 UTC (permalink / raw)
  To: linux-nvme
  Cc: Michal Krakowiak, Sagi Grimberg, Jens Axboe, Keith Busch,
	Dan Williams, Christoph Hellwig

FTrace does not parse NVMe commands consistently. There are commands
that are being parsed in detail and commands for which the trace log
contains only raw bytes of command dwords. Add detailed parsing of
format nvm admin command to make the trace log more consistent and
human-readable.

Signed-off-by: Michal Krakowiak <michal.krakowiak@intel.com>
Acked-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/nvme/host/trace.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/nvme/host/trace.c b/drivers/nvme/host/trace.c
index 5c3cb6928f3c..e0400de713b5 100644
--- a/drivers/nvme/host/trace.c
+++ b/drivers/nvme/host/trace.c
@@ -102,6 +102,23 @@ static const char *nvme_trace_get_lba_status(struct trace_seq *p,
 	return ret;
 }

+static const char *nvme_trace_admin_format_nvm(struct trace_seq *p, u8 *cdw10)
+{
+	const char *ret = trace_seq_buffer_ptr(p);
+	u8 lbaf = cdw10[0] & 0xF;
+	u8 mset = (cdw10[0] >> 4) & 0x1;
+	u8 pi = (cdw10[0] >> 5) & 0x7;
+	u8 pil = cdw10[1] & 0x1;
+	u8 ses = (cdw10[1] >> 1) & 0x7;
+
+	trace_seq_printf(p, "lbaf=%u, mset=%u, pi=%u, pil=%u, ses=%u",
+			lbaf, mset, pi, pil, ses);
+
+	trace_seq_putc(p, 0);
+
+	return ret;
+}
+
 static const char *nvme_trace_read_write(struct trace_seq *p, u8 *cdw10)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
@@ -159,6 +176,8 @@ const char *nvme_trace_parse_admin_cmd(struct trace_seq *p,
 		return nvme_trace_admin_get_features(p, cdw10);
 	case nvme_admin_get_lba_status:
 		return nvme_trace_get_lba_status(p, cdw10);
+	case nvme_admin_format_nvm:
+		return nvme_trace_admin_format_nvm(p, cdw10);
 	default:
 		return nvme_trace_common(p, cdw10);
 	}
--
2.20.1


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-01-28 12:39 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-04 15:53 [PATCH] nvme: trace: parse format nvm command in detail Michal Krakowiak
2021-01-04 16:02 ` Keith Busch
2021-01-06  9:00   ` Christoph Hellwig
2021-01-08 22:34     ` Keith Busch
2021-01-09  0:12       ` Dan Williams
2021-01-11 17:01         ` Keith Busch
2021-01-11 17:10           ` Dan Williams
2021-01-11 17:50             ` Keith Busch
2021-01-11 20:15               ` Michal Krakowiak
2021-01-12  8:33                 ` Christoph Hellwig
2021-01-05 19:31 ` Minwoo Im
2021-01-27 17:46 ` Christoph Hellwig
2021-01-28 12:25   ` Michal Krakowiak
2021-01-28 12:39     ` Christoph Hellwig

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.