From 769a6d5a2ce00b70668abed462b074275e7bb1b4 Mon Sep 17 00:00:00 2001 From: Tokunori Ikegami Date: Fri, 9 Jan 2026 02:46:20 +0900 Subject: [PATCH 1/2] nvme-print-stdout: change stdout_d() to not print equal line This is for the id-ns command empty vendor-specific fields. Note: This will change for other commands d() outputs. Signed-off-by: Tokunori Ikegami --- nvme-print-stdout.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 7995052a3e..4c567a5787 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -4901,10 +4901,19 @@ static void stdout_lba_status_info(__u64 result) (__u32)NVME_FEAT_LBAS_LSIRI(result)); } +static bool line_equal(unsigned char *buf, int len, int width, int offset) +{ + if (!offset || len < offset + width) + return false; + + return !memcmp(buf + offset - width, buf + offset, width); +} + void stdout_d(unsigned char *buf, int len, int width, int group) { int i, offset = 0; char ascii[32 + 1] = { 0 }; + bool omitting = false; assert(width < sizeof(ascii)); @@ -4914,8 +4923,21 @@ void stdout_d(unsigned char *buf, int len, int width, int group) printf("%3x", i); for (i = 0; i < len; i++) { - if (!(i % width)) + if (!(i % width)) { + if (line_equal(buf, len, width, offset)) { + if (!omitting) { + omitting = true; + printf("\n*"); + } + offset += width; + continue; + } else if (omitting) { + omitting = false; + } printf("\n%04x:", offset); + } + if (omitting) + continue; if (i % group) printf("%02x", buf[i]); else @@ -4927,6 +4949,8 @@ void stdout_d(unsigned char *buf, int len, int width, int group) memset(ascii, 0, sizeof(ascii)); } } + if (omitting) + printf("\n%04x:\n", offset); if (strlen(ascii)) { unsigned int b = width - (i % width); From 114bdc400cec16ba47ae50e82fac8157cdf1a7f2 Mon Sep 17 00:00:00 2001 From: Tokunori Ikegami Date: Sat, 10 Jan 2026 01:21:08 +0900 Subject: [PATCH 2/2] nvme-print-stdout: print equal line by stdout_d() for debug log level This is to remain all dump functionality feature. Signed-off-by: Tokunori Ikegami --- nvme-print-stdout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 4c567a5787..942965f463 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -4903,7 +4903,7 @@ static void stdout_lba_status_info(__u64 result) static bool line_equal(unsigned char *buf, int len, int width, int offset) { - if (!offset || len < offset + width) + if (!offset || len < offset + width || log_level >= LOG_DEBUG) return false; return !memcmp(buf + offset - width, buf + offset, width);