trace_block_rq_complete(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… trace_block_rq_complete β€” Kernel API Manual, bestie edition

okay so you found the man page for trace_block_rq_complete and honestly? good taste. this is the one that's like "hey, the device driver finished some block IO, tell the tracepoint about it." it lives in the Kernel API Manual, section 9, and it's literally the completion-notification girlie of the block layer πŸŽ€


✨ NAME ✨

trace_block_rq_complete β€” block IO operation completed by device driver πŸ’–


✨ SYNOPSIS ✨

void trace_block_rq_complete (struct request *rq , blk_status_t error ,
unsigned int nr_bytes );

that's the whole signature, no cap. void return, three args, one job 🫢


✨ ARGUMENTS ✨

  • rq β€” block operations request. the request we're talking about, the main character of this whole situation πŸ‘‘
  • error β€” status code. blk_status_t energy, it's giving "how did it go" πŸ’€
  • nr_bytes β€” number of completed bytes. exactly how much got done, fr fr 🌸

✨ DESCRIPTION ✨

The block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. like, the driver did a chunk of the work and this is it announcing that ✨

Now here's the vibe check that actually matters:

  • If the rq->bio is NULL, then there is absolutely no additional work to do for the request. done. finished. nothing left. πŸ’…
  • If rq->bio is non-NULL then there is additional work required to complete the request. more to do, bestie, keep going 😭
so rq->bio is lowkey the little indicator of "are we actually done here or nah". NULL = we're so done, non-NULL = not yet πŸ¦‹

✨ SEE ALSO ✨

Kernel file ./include/trace/events/block.h β€” that's the file where all this lives, go read it, iykyk πŸ“–

the whole friend group of block tracepoints, in the order the page lists them:


and that's the page, bestie 🧚 source path ./include/trace/events, dated October 2026, and the man page is trace_block_rq_complete(9) β€” slay, go trace some block requests βœ¨πŸ’œ

πŸ“¦ where this page comes from