trace_block_rq_complete(9)
π 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_tenergy, 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->bioisNULL, then there is absolutely no additional work to do for the request. done. finished. nothing left. π - If
rq->biois non-NULLthen there is additional work required to complete the request. more to do, bestie, keep going π
sorq->biois 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:
trace_block_touch_buffer(9)trace_block_dirty_buffer(9)trace_block_rq_requeue(9)trace_block_rq_error(9)trace_block_rq_tag_wait(9)trace_block_rq_insert(9)trace_block_rq_issue(9)trace_block_rq_merge(9)trace_block_io_start(9)trace_block_io_done(9)trace_block_bio_complete(9)trace_block_bio_backmerge(9)trace_block_bio_frontmerge(9)trace_block_bio_queue(9)trace_block_getrq(9)trace_blk_zone_append_update_request_bio(9)trace_block_plug(9)trace_block_unplug(9)trace_block_split(9)trace_block_bio_remap(9)trace_block_rq_remap(9)trace_blkdev_zone_mgmt(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms