]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block: add tracepoint for blk_zone_update_request_bio
authorJohannes Thumshirn <johannes.thumshirn@wdc.com>
Tue, 15 Jul 2025 11:53:22 +0000 (13:53 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 15 Jul 2025 14:03:49 +0000 (08:03 -0600)
Add a tracepoint in blk_zone_update_request_bio() to trace the bio sector
update on ZONE APPEND completions.

An example for this tracepoint is as follows:

<idle>-0 [001] d.h1.  381.746444: blk_zone_update_request_bio: 259,5 ZAS 131072 () 1048832 + 256 none,0,0 [swapper/1]

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20250715115324.53308-4-johannes.thumshirn@wdc.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-zoned.c
include/trace/events/block.h

index 88deb751b621e013de7e6186287742633e1db0cf..69af3caa3b1c33c7b5bdaf571cb92485f3661592 100644 (file)
@@ -17,6 +17,8 @@
 #include <linux/refcount.h>
 #include <linux/mempool.h>
 
+#include <trace/events/block.h>
+
 #include "blk.h"
 #include "blk-mq-sched.h"
 #include "blk-mq-debugfs.h"
@@ -1198,6 +1200,7 @@ void blk_zone_append_update_request_bio(struct request *rq, struct bio *bio)
         * lookup the zone write plug.
         */
        bio->bi_iter.bi_sector = rq->__sector;
+       trace_blk_zone_append_update_request_bio(rq);
 }
 
 void blk_zone_write_plug_bio_endio(struct bio *bio)
index d88669b3ce0258759f77c2f864b4fa4c6e207c59..4855abdf98800f5ba56a596429a5ed428f26eced 100644 (file)
@@ -404,6 +404,17 @@ DEFINE_EVENT(block_bio, block_getrq,
        TP_ARGS(bio)
 );
 
+/**
+ * block_zone_update_request_bio - update the bio sector after a zone append
+ * @bio: the completed block IO operation
+ *
+ * Update the bio's bi_sector after a zone append command has been completed.
+ */
+DEFINE_EVENT(block_rq, blk_zone_append_update_request_bio,
+            TP_PROTO(struct request *rq),
+            TP_ARGS(rq)
+);
+
 /**
  * block_plug - keep operations requests in request queue
  * @q: request queue to plug