trace_block_rq_tag_wait(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

trace_block_rq_tag_wait β€” triggered when a request is starved of a tag.

Welcome to the Kernel API Manual, bestie 🫢 β€” this page is about that exact moment when a request is out here waiting on a tag and the tag situation is giving empty-shelf energy 😭.


✨ SYNOPSIS ✨

void trace_block_rq_tag_wait (struct request_queue *q , struct
       blk_mq_hw_ctx *hctx , bool is_sched_tag , unsigned int alloc_flags );

🌸 ARGUMENTS 🌸

  • q β€” request queue of the target device.
  • hctx β€” hardware context of the request experiencing starvation.
  • is_sched_tag β€” indicates whether the starved pool is the software scheduler.
  • alloc_flags β€” allocation flags dictating the specific tag pool.

🧚 DESCRIPTION 🧚

So picture it: this trace point is called immediately before the submitting context is forced to block due to the exhaustion of available tags β€” and yes, that means physical hardware driver tags, software scheduler tags, or reserved tags, iykyk 😭.

This trace point indicates that the context will be placed into an uninterruptible state via sbitmap_prepare_to_wait. If a tag is not acquired in the final lockless retry, the context will yield the CPU via io_schedule until an active request completes and relinquishes its assigned tag. Periodt πŸ’….


πŸ’œ SEE ALSO πŸ’œ

Kernel file: ./include/trace/events/block.h

Go peek at these too, bestie:


That’s the tea, bestie πŸ’– β€” source/version ./include/trace/events, dated October 2026. Slay and happy tracing! βœ¨πŸ’…

πŸ“¦ where this page comes from