bfq_bfqq_expire(9)
π bfq_bfqq_expire(9) π
okay so this page is from the Kernel API Manual, and the main character is literally bfq_bfqq_expire(9) β¨ no cap, we're about to expire a queue and understand the whole vibe.
πΈ NAME πΈ
bfq_bfqq_expire - expire a queue. periodt π
π¦ SYNOPSIS π¦
void bfq_bfqq_expire (struct bfq_data *bfqd , struct bfq_queue *bfqq ,
bool compensate , enum bfqq_expiration reason );
π ARGUMENTS π
bfqdβ the device that owns the queue. like, whose queue is this? this guy knows πbfqqβ the queue we're expiring. bye bestie, your turn is up πcompensateβ iftrue, compensate for the time spent idling. yes, the idle time gets its little compensation moment β¨reasonβ the reason causing the expiration. the whole "why are we doing this" of it all π
π§ DESCRIPTION π§
Okay so here's the tea β: if the process associated with bfqq does slow I/O β e.g., because it issues random requests β we charge bfqq with the time it has been in service instead of the service it has received (see bfq_bfqq_charge_time for details on how this goal is achieved). π«Ά
As a consequence, bfqq will typically get higher timestamps upon reactivation, and hence it will be rescheduled as if it had received more service than what it has actually received. In the end, bfqq receives less service in proportion to how slowly its associated process consumes its budgets (and hence how seriously it tends to lower the throughput). Also, this time-charging strategy guarantees time fairness among slow processes. In contrast, if the process associated with bfqq is not slow, we charge bfqq exactly with the service it has received. periodt π
Charging time to the first type of queues and the exact service to the other has the effect of using the WF2Q+ policy to schedule the former on a timeslice basis, without violating service domain guarantees among the latter. that's the whole vibe check, and it ate π₯
π SEE ALSO π
- Kernel file
./block/bfq-iosched.c icq_to_bic(9)bfq_bic_lookup(9)bfq_updated_next_req(9)__bfq_bfqq_recalc_budget(9)
and that's the page, bestie π«Ά source/version is ./block, date is October 2026, and the page is literally bfq_bfqq_expire(9) β slay π
β¨
π¦ 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