On Wed, Mar 18, 2026 at 08:38:20AM +0900, Damien Le Moal wrote: > Looks OK to me, but I have some suggestions below.
Hi Damien,
Thank you for your feedback.
> > +/**
> > + * block_rq_tag_wait - triggered when an I/O request is starved of a
> > tag
>
> when an I/O request -> when a request
Acknowledged.
>
> > + * @q: queue containing the request
>
> request queue of the target device
>
> ("containing" is odd here)
Acknowledged.
> > + * @hctx: hardware context (queue) experiencing starvation
>
> hardware context of the request
Acknowledged.
> > + *
> > + * Called immediately before the submitting thread is forced to block due
>
> the submitting thread -> the submitting context
Acknowledged.
>
> > + * to the exhaustion of available hardware tags. This tracepoint indicates
>
> s/tracepoint/trace point
Acknowledged.
>
> > + * that the thread will be placed into an uninterruptible state via
>
> s/thread/context
Acknowledged.
>
> > + * io_schedule() until an active block I/O operation completes and
> > + * relinquishes its assigned tag.
>
> until an active request completes
>
Acknowledged.
> > + */
> > +TRACE_EVENT(block_rq_tag_wait,
> > +
> > + TP_PROTO(struct request_queue *q, struct blk_mq_hw_ctx *hctx),
> > +
> > + TP_ARGS(q, hctx),
> > +
> > + TP_STRUCT__entry(
> > + __field( dev_t, dev )
> > + __field( u32, hctx_id )
> > + __field( u32, nr_tags )
> > + __field( u32, active_requests )
> > + ),
> > +
> > + TP_fast_assign(
> > + __entry->dev = q->disk ? disk_devt(q->disk) : 0;
>
> I do not think that q->disk can ever be NULL when there is a request being
> submitted.
Yes, I agree. In theory, a race with disk_release() cannot occur since the
gendisk reference counter would still be elevated here.
>
> > + __entry->hctx_id = hctx ? hctx->queue_num : 0;
> > + __entry->nr_tags = hctx && hctx->tags ?
> > hctx->tags->nr_tags : 0;
> > + __entry->active_requests = hctx ?
> > atomic_read(&hctx->nr_active) : 0;
> > + ),
> > +
> > + TP_printk("%d,%d hctx=%u starved (active=%u/%u)",
> > + MAJOR(__entry->dev), MINOR(__entry->dev),
> > + __entry->hctx_id, __entry->active_requests, __entry->nr_tags)
> > +);
> > +
> > /**
> > * block_rq_insert - insert block operation request into queue
> > * @rq: block IO operation request
Kind regards,
--
Aaron Tomlin
signature.asc
Description: PGP signature
