mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
blktrace: expose ZONE APPEND completions to blktrace
Expose ZONE APPEND completions as a block trace completion action to blktrace. As tracing of zoned block commands needs the upper 32bit of the widened 64bit action, only add traces to blktrace if user-space has requested version 2 of the blktrace protocol. Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
f9ee38bbf7
commit
1c164fcc1b
@@ -97,6 +97,9 @@ enum blktrace_notify {
|
||||
#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
|
||||
|
||||
#define BLK_TA_ZONE_APPEND (__BLK_TA_COMPLETE |\
|
||||
BLK_TC_ACT(BLK_TC_ZONE_APPEND))
|
||||
|
||||
#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
|
||||
@@ -978,6 +978,22 @@ static void blk_add_trace_rq_complete(void *ignore, struct request *rq,
|
||||
blk_trace_request_get_cgid(rq));
|
||||
}
|
||||
|
||||
static void blk_add_trace_zone_update_request(void *ignore, struct request *rq)
|
||||
{
|
||||
struct blk_trace *bt;
|
||||
|
||||
rcu_read_lock();
|
||||
bt = rcu_dereference(rq->q->blk_trace);
|
||||
if (likely(!bt) || bt->version < 2) {
|
||||
rcu_read_unlock();
|
||||
return;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
blk_add_trace_rq(rq, 0, blk_rq_bytes(rq), BLK_TA_ZONE_APPEND,
|
||||
blk_trace_request_get_cgid(rq));
|
||||
}
|
||||
|
||||
/**
|
||||
* blk_add_trace_bio - Add a trace for a bio oriented action
|
||||
* @q: queue the io is for
|
||||
@@ -1208,6 +1224,9 @@ static void blk_register_tracepoints(void)
|
||||
WARN_ON(ret);
|
||||
ret = register_trace_block_getrq(blk_add_trace_getrq, NULL);
|
||||
WARN_ON(ret);
|
||||
ret = register_trace_blk_zone_append_update_request_bio(
|
||||
blk_add_trace_zone_update_request, NULL);
|
||||
WARN_ON(ret);
|
||||
ret = register_trace_block_plug(blk_add_trace_plug, NULL);
|
||||
WARN_ON(ret);
|
||||
ret = register_trace_block_unplug(blk_add_trace_unplug, NULL);
|
||||
@@ -1227,6 +1246,8 @@ static void blk_unregister_tracepoints(void)
|
||||
unregister_trace_block_split(blk_add_trace_split, NULL);
|
||||
unregister_trace_block_unplug(blk_add_trace_unplug, NULL);
|
||||
unregister_trace_block_plug(blk_add_trace_plug, NULL);
|
||||
unregister_trace_blk_zone_append_update_request_bio(
|
||||
blk_add_trace_zone_update_request, NULL);
|
||||
unregister_trace_block_getrq(blk_add_trace_getrq, NULL);
|
||||
unregister_trace_block_bio_queue(blk_add_trace_bio_queue, NULL);
|
||||
unregister_trace_block_bio_frontmerge(blk_add_trace_bio_frontmerge, NULL);
|
||||
|
||||
Reference in New Issue
Block a user