[PATCH v2 3/3] nvmet: add set feature tracing support
Hou Pu
houpu.main at gmail.com
Mon Jul 5 04:28:18 PDT 2021
A nvme connect command produces following trace from the target side.
Before:
kworker/0:1H-56 [000] .... 9012.155139: nvmet_req_init: nvmet1: qid=0, cmdid=16, nsid=0, flags=0x40, meta=0x0, cmd=(nvme_admin_set_features, cdw10=07 00 00 00 07 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)
kworker/0:1H-56 [000] .... 9012.872272: nvmet_req_init: nvmet1: qid=0, cmdid=13, nsid=0, flags=0x40, meta=0x0, cmd=(nvme_admin_set_features, cdw10=0b 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)
After:
kworker/0:1H-56 [000] .... 97.207441: nvmet_req_init: nvmet1: qid=0, cmdid=6, nsid=0, flags=0x40, meta=0x0, cmd=(nvme_admin_set_features, fid=0x7, sv=0x0, cdw11=07 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)
kworker/0:1H-56 [000] .... 97.925443: nvmet_req_init: nvmet1: qid=0, cmdid=7, nsid=0, flags=0x40, meta=0x0, cmd=(nvme_admin_set_features, fid=0xb, sv=0x0, cdw11=00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)
Signed-off-by: Hou Pu <houpu.main at gmail.com>
---
drivers/nvme/target/trace.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/nvme/target/trace.c b/drivers/nvme/target/trace.c
index 902500a57185..a1200837646a 100644
--- a/drivers/nvme/target/trace.c
+++ b/drivers/nvme/target/trace.c
@@ -19,6 +19,20 @@ static const char *nvmet_trace_admin_identify(struct trace_seq *p, u8 *cdw10)
return ret;
}
+static const char *nvmet_trace_admin_set_features(struct trace_seq *p,
+ u8 *cdw10)
+{
+ const char *ret = trace_seq_buffer_ptr(p);
+ u8 fid = cdw10[0];
+ u8 sv = cdw10[3] & 0x8;
+
+ trace_seq_printf(p, "fid=0x%x, sv=0x%x, ", fid, sv);
+ trace_seq_printf(p, "cdw11=%*ph", 20, cdw10 + 4);
+ trace_seq_putc(p, 0);
+
+ return ret;
+}
+
static const char *nvmet_trace_admin_get_features(struct trace_seq *p,
u8 *cdw10)
{
@@ -96,6 +110,8 @@ const char *nvmet_trace_parse_admin_cmd(struct trace_seq *p,
switch (opcode) {
case nvme_admin_identify:
return nvmet_trace_admin_identify(p, cdw10);
+ case nvme_admin_set_features:
+ return nvmet_trace_admin_set_features(p, cdw10);
case nvme_admin_get_features:
return nvmet_trace_admin_get_features(p, cdw10);
case nvme_admin_get_lba_status:
--
2.28.0
More information about the Linux-nvme
mailing list