diff --git a/block/blk-mq.c b/block/blk-mq.c index 9fb88dac18e3..a55c0449f411 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -343,6 +343,7 @@ static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data, } data->hctx->queued++; + trace_android_vh_blk_rq_ctx_init(rq, tags, data, alloc_time_ns); return rq; } diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 6cd8e36a08e3..8bbf73750265 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -241,6 +241,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_avc_node_delete); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_avc_node_replace); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_avc_lookup); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_blk_alloc_rqs); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_blk_rq_ctx_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_commit_creds); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_creds); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_override_creds); diff --git a/include/trace/hooks/block.h b/include/trace/hooks/block.h index cccdf419ceb7..0d9d7db39968 100644 --- a/include/trace/hooks/block.h +++ b/include/trace/hooks/block.h @@ -12,12 +12,18 @@ struct blk_mq_tag_set; struct blk_mq_tags; +struct blk_mq_alloc_data; DECLARE_HOOK(android_vh_blk_alloc_rqs, TP_PROTO(size_t *rq_size, struct blk_mq_tag_set *set, struct blk_mq_tags *tags), TP_ARGS(rq_size, set, tags)); +DECLARE_HOOK(android_vh_blk_rq_ctx_init, + TP_PROTO(struct request *rq, struct blk_mq_tags *tags, + struct blk_mq_alloc_data *data, u64 alloc_time_ns), + TP_ARGS(rq, tags, data, alloc_time_ns)); + #endif /* _TRACE_HOOK_BLOCK_H */ /* This part must be outside protection */