block: add blktrace support for zoned block device commands
From: | Johannes Thumshirn <johannes.thumshirn-AT-wdc.com> | |
To: | Jens Axboe <axboe-AT-kernel.dk> | |
Subject: | [PATCH v2 00/15] block: add blktrace support for zoned block device commands | |
Date: | Thu, 25 Sep 2025 17:02:16 +0200 | |
Message-ID: | <20250925150231.67342-1-johannes.thumshirn@wdc.com> | |
Cc: | Steven Rostedt <rostedt-AT-goodmis.org>, Masami Hiramatsu <mhiramat-AT-kernel.org>, Mathieu Desnoyers <mathieu.desnoyers-AT-efficios.com>, linux-block-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-trace-kernel-AT-vger.kernel.org, linux-btrace-AT-vger.kernel.org, John Garry <john.g.garry-AT-oracle.com>, Hannes Reinecke <hare-AT-suse.de>, Damien Le Moal <dlemoal-AT-kernel.org>, Christoph Hellwig <hch-AT-lst.de>, Naohiro Aota <naohiro.aota-AT-wdc.com>, Shinichiro Kawasaki <shinichiro.kawasaki-AT-wdc.com>, Chaitanya Kulkarni <chaitanyak-AT-nvidia.com>, "Martin K . Petersen" <martin.petersen-AT-oracle.com>, Johannes Thumshirn <johannes.thumshirn-AT-wdc.com> | |
Archive-link: | Article |
This patch series extends the kernel blktrace infrastructure to support tracing zoned block device commands. Zoned block devices (e.g., ZAC/ZBC and ZNS) introduce command types such as zone open, close, reset, finish, and zone append. These are currently not visible in blktrace, making it difficult to debug and analyze I/O workloads on zoned devices. The patches in this series utilize the new trace points for these zone management operations, and propagate the necessary context to the blktrace logging path. These additions are designed to be backward-compatible, and are only active when zoned devices are in use. In order to not break the user-space ABI, a new ioctl was introduced to request the new version of the blk_io_trace with extended 'action' field. The user-space tools in the blktrace suite are updated in a separate patch series to interpret and display the new trace events.This patch series extends the kernel blktrace infrastructure to support tracing zoned block device commands. Zoned block devices (e.g., ZAC/ZBC and ZNS) introduce command types such as zone open, close, reset, finish, and zone append. These are currently not visible in blktrace, making it difficult to debug and analyze I/O workloads on zoned devices. The patches in this series utilize the new trace points for these zone management operations, and propagate the necessary context to the blktrace logging path. These additions are designed to be backward-compatible, and are only active when zoned devices are in use. In order to not break the user-space ABI, a new ioctl was introduced to request the new version of the blk_io_trace with extended 'action' field. The user-space tools in the blktrace suite are updated in a separate patch series to interpret and display the new trace events. Changes to v1: - Incroporate feedback from Christoph Johannes Thumshirn (15): blktrace: only calculate trace length once blktrace: factor out recording a blktrace event blktrace: split out relaying a blktrace event blktrace: untangle if/else sequence in __blk_add_trace blktrace: change the internal action to 64bit blktrace: split do_blk_trace_setup into two functions blktrace: add definitions for blk_user_trace_setup2 blktrace: pass blk_user_trace2 to setup functions blktrace: add definitions for struct blk_io_trace2 blktrace: differentiate between blk_io_trace versions blktrace: add block trace commands for zone operations blktrace: expose ZONE APPEND completions to blktrace blktrace: trace zone management operations blktrace: trace zone write plugging operations blktrace: handle BLKTRACESETUP2 ioctl block/ioctl.c | 1 + include/linux/blktrace_api.h | 3 +- include/uapi/linux/blktrace_api.h | 54 +++- include/uapi/linux/fs.h | 1 + kernel/trace/blktrace.c | 458 +++++++++++++++++++++++------- 5 files changed, 407 insertions(+), 110 deletions(-) -- 2.51.0