blk_mq_quiesce_queue(9)
π blk_mq_quiesce_queue(9) β from the Kernel API Manual, bestie
okay so picture this: it's a Thursday, the block layer is Booked And Busy, and you need everyone to just chill for a sec. That's this function. It's blk_mq_quiesce_queue, and no cap, the whole point is "wait until all ongoing dispatches have finished." Iconic behavior honestly. π
β¨ NAME β¨
blk_mq_quiesce_queue β wait until all ongoing dispatches have finished π¦
πΈ SYNOPSIS πΈ
void blk_mq_quiesce_queue (struct request_queue *q );
π ARGUMENTS π
qβ the request queue. yeah. that's the one. that's the queue we're quiescing, bestie. π«Ά
β οΈ NOTE β οΈ
okay this part is important so listen up fr fr:
this function does not prevent the struct request end_io callback function from being invoked. nope. not doing that. that's not its job π
but here's the slay: once this function has returned, we make sure no dispatch can happen until the queue is unquiesced via blk_mq_unquiesce_queue. periodt. that's the guarantee. π
so likeβ¦ end_io can still show up to the party, but nothing new gets dispatched until you say so. got it? got it. β¨
π SEE ALSO π
Kernel file ./block/blk-mq.c, plus the whole friend group:
blk_mq_wait_quiesce_done(9)blk_update_request(9)blk_mq_complete_request(9)blk_mq_start_request(9)blk_execute_rq_nowait(9)blk_execute_rq(9)blk_mq_delay_run_hw_queue(9)blk_mq_run_hw_queue(9)blk_mq_run_hw_queues(9)blk_mq_delay_run_hw_queues(9)blk_mq_request_bypass_insert(9)blk_mq_try_issue_directly(9)blk_mq_submit_bio(9)blk_insert_cloned_request(9)blk_rq_unprep_clone(9)blk_rq_prep_clone(9)blk_mq_destroy_queue(9)
and that's the whole page, bestie π this little gem lives in ./block, dated October 2026, and it literally says blk_mq_quiesce_queue(9) right there in the corner like a little name tag π go forth and quiesce responsibly π§ββοΈπΈ
π¦ 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