On Sun, 26 Apr 2026 22:01:41 -0400
Aaron Tomlin <[email protected]> wrote:

> +TRACE_EVENT(block_rq_tag_wait,
> +
> +     TP_PROTO(struct request_queue *q, struct blk_mq_hw_ctx *hctx, bool 
> is_sched_tag),
> +
> +     TP_ARGS(q, hctx, is_sched_tag),
> +
> +     TP_STRUCT__entry(
> +             __field( dev_t,         dev                     )
> +             __field( u32,           hctx_id                 )
> +             __field( u32,           nr_tags                 )
> +             __field( bool,          is_sched_tag            )
> +     ),
> +
> +     TP_fast_assign(
> +             __entry->dev            = q->disk ? disk_devt(q->disk);

Hmm, does the above even compile?

-- Steve

> +             __entry->hctx_id        = hctx->queue_num;
> +             __entry->is_sched_tag   = is_sched_tag;
> +
> +             if (is_sched_tag)
> +                     __entry->nr_tags = hctx->sched_tags->nr_tags;
> +             else
> +                     __entry->nr_tags = hctx->tags->nr_tags;
> +     ),
> +
> +     TP_printk("%d,%d hctx=%u starved on %s tags (depth=%u)",
> +               MAJOR(__entry->dev), MINOR(__entry->dev),
> +               __entry->hctx_id,
> +               __entry->is_sched_tag ? "scheduler" : "hardware",
> +               __entry->nr_tags)
> +);
> +

Reply via email to