[PATCH 18/21] blkparse: parse zone (un)plug actions
From: Johannes Thumshirn <hidden>
Date: 2025-09-09 11:08:49
Also in:
linux-block, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
Parse Zone Write Plugging plug and unplug actions in blkparse. Signed-off-by: Johannes Thumshirn <redacted> --- blkparse.c | 7 +++++++ blkparse_fmt.c | 19 +++++++++++++++++++ blktrace_api.h | 2 ++ 3 files changed, 28 insertions(+)
diff --git a/blkparse.c b/blkparse.c
index e702356..1a372e5 100644
--- a/blkparse.c
+++ b/blkparse.c@@ -1722,6 +1722,13 @@ static void dump_trace_fs(struct blk_io_trace2 *t, struct per_dev_info *pdi, account_unplug(t, pci, 1); log_unplug(pci, t, "UT"); break; + case __BLK_TA_ZONE_PLUG: + log_action(pci, t, "ZP"); + break; + case __BLK_TA_ZONE_UNPLUG: + account_unplug(t, pci, 0); + log_unplug(pci, t, "ZU"); + break; case __BLK_TA_SPLIT: log_track_split(pdi, t); log_split(pci, t, "X");
diff --git a/blkparse_fmt.c b/blkparse_fmt.c
index f93addb..a5f721f 100644
--- a/blkparse_fmt.c
+++ b/blkparse_fmt.c@@ -301,6 +301,22 @@ static char *parse_field(char *act, struct per_cpu_info *pci, return p; } +static void process_zoned(char *act, struct blk_io_trace2 *t, + unsigned long long elapsed, char *name) +{ + switch (act[1]) { + case 'P': /* Zone Plug */ + fprintf(ofp, "[%s]\n", name); + break; + case 'U': /* Zone Unplug */ + fprintf(ofp, "[%s] %u\n", name, get_pdu_int(t)); + break; + default: + fprintf(stderr, "Unknown zoned action %c\n", act[1]); + break; + } +} + static void process_default(char *act, struct per_cpu_info *pci, struct blk_io_trace2 *t, unsigned long long elapsed, int pdu_len, unsigned char *pdu_buf)
@@ -429,6 +445,9 @@ static void process_default(char *act, struct per_cpu_info *pci, fprintf(ofp, "%*s\n", pdu_len, pdu_buf); break; + case 'Z': /* Zoned command */ + process_zoned(act, t, elapsed, name); + break; default: fprintf(stderr, "Unknown action %c\n", act[0]); break;
diff --git a/blktrace_api.h b/blktrace_api.h
index bbf075f..3966e1a 100644
--- a/blktrace_api.h
+++ b/blktrace_api.h@@ -62,6 +62,8 @@ enum { __BLK_TA_REMAP, /* bio was remapped */ __BLK_TA_ABORT, /* request aborted */ __BLK_TA_DRV_DATA, /* binary driver data */ + __BLK_TA_ZONE_PLUG, /* zone write plug was plugged */ + __BLK_TA_ZONE_UNPLUG, /* zone write plug was unplugged */ __BLK_TA_ZONE_MGMT, /* zone management command was issued */ __BLK_TA_CGROUP = 1 << 8, };
--
2.51.0