STRUCT BFQ_SERVICE_TREE(9)
π struct bfq_service_tree(9) π
okay so welcome to the Kernel API Manual, bestie β this is the struct bfq_service_tree(9) page, and it's giving per-class scheduler realness β¨
π NAME π
struct bfq_service_tree β per ioprio_class service tree. That's the whole name vibe π
β¨ SYNOPSIS β¨
Here's the struct, no cap β fields exactly as they are, don't touch a character:
struct bfq_service_tree {
struct rb_root active;
struct rb_root idle;
struct bfq_entity *first_idle;
struct bfq_entity *last_idle;
u64 vtime;
unsigned long wsum;
};
π«Ά Members π«Ά
No extra per-member notes here β the member lineup is the struct up in SYNOPSIS, and that's it. The squad is all right there π
πΈ Description πΈ
Each service tree represents a B-WF2Q+ scheduler on its own. That's the main-character energy: one scheduler per tree, no sharing.
Every ioprio_class has its own independent scheduler, and so its own bfq_service_tree. Independent means independent, bestie β they're not sharing a scheduler.
All the fields are protected by the queue lock of the containing bfqd. So yeah, lock discipline is the vibe check here π«Ά
π₯ SEE ALSO π₯
Kernel file ./block/bfq-iosched.h β go peek, iykyk:
struct bfq_sched_data(9)struct bfq_weight_counter(9)struct bfq_entity(9)struct bfq_ttime(9)struct bfq_queue(9)struct bfq_io_cq(9)struct bfq_data(9)struct bfq_group(9)
mwah π β this little page came from the ./block source, dated October 2026, and it's all about struct bfq_service_tree(9). Periodt π
π¦ 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