blkcg_gqRegular
4.4: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[2];
struct callback_head callback_head;
};
4.8: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[2];
struct callback_head callback_head;
};
4.10: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[2];
struct callback_head callback_head;
};
4.13: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[3];
struct callback_head callback_head;
};
4.15: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[3];
struct callback_head callback_head;
};
4.18: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct request_list rl;
atomic_t refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[3];
struct callback_head callback_head;
};
5.0: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
struct callback_head callback_head;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
};
5.3: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.4: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.8: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.11: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.13: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.15: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
5.19: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
struct work_struct free_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
6.2: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
struct work_struct free_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
6.5: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
struct work_struct free_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
6.8: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data * pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
struct work_struct free_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
arm64: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
armhf: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
ppc64el: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
riscv64: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
aws: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
azure: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
gcp: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
lowlatency: ✅struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct bdi_writeback_congested *wb_congested;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
struct blkg_policy_data * pd[5];
spinlock_t async_bio_lock;
struct bio_list async_bios;
struct work_struct async_bio_work;
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
Regular
4.4 and 4.8 ✅
4.8 and 4.10 ✅
4.10 and 4.13 ⚠️struct blkg_policy_data * pd[2] ➡️ struct blkg_policy_data * pd[3]
4.13 and 4.15 ✅
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️atomic_t use_delay
atomic64_t delay_nsec
atomic64_t delay_start
u64 last_delay
int last_use
struct request_list rl
atomic_t refcnt ➡️ struct percpu_ref refcnt
struct blkg_policy_data * pd[3] ➡️ struct blkg_policy_data * pd[5]
5.0 and 5.3 ⚠️spinlock_t async_bio_lock
struct bio_list async_bios
struct work_struct async_bio_work
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️struct blkg_iostat_set *iostat_cpu
struct blkg_iostat_set iostat
struct blkg_rwstat stat_bytes
struct blkg_rwstat stat_ios
5.8 and 5.11 ⚠️struct bdi_writeback_congested *wb_congested
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️struct blkg_policy_data * pd[5] ➡️ struct blkg_policy_data * pd[6]
5.15 and 5.19 ⚠️struct work_struct free_work
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ✅
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅