io_wqRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: Absent ⚠️
5.3: Absent ⚠️
5.4: Absent ⚠️
5.8: ✅struct io_wq {
struct io_wqe **wqes;
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct task_struct *manager;
struct user_struct *user;
refcount_t refs;
struct completion done;
refcount_t use_refs;
};
5.11: ✅struct io_wq {
struct io_wqe **wqes;
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct task_struct *manager;
struct user_struct *user;
refcount_t refs;
struct completion done;
struct hlist_node cpuhp_node;
refcount_t use_refs;
};
5.13: ✅struct io_wq {
struct io_wqe **wqes;
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
refcount_t refs;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
};
5.15: ✅struct io_wq {
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wqe * wqes[0];
};
5.19: ✅struct io_wq {
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wqe * wqes[0];
};
6.2: ✅struct io_wq {
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wqe * wqes[0];
};
6.5: ✅struct io_wq {
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wq_acct acct[2];
raw_spinlock_t lock;
struct hlist_nulls_head free_list;
struct list_head all_list;
struct wait_queue_entry wait;
struct io_wq_work * hash_tail[64];
cpumask_var_t cpu_mask;
};
6.8: ✅struct io_wq {
long unsigned int state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wq_acct acct[2];
raw_spinlock_t lock;
struct hlist_nulls_head free_list;
struct list_head all_list;
struct wait_queue_entry wait;
struct io_wq_work * hash_tail[64];
cpumask_var_t cpu_mask;
};
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: Absent ⚠️
azure: Absent ⚠️
gcp: Absent ⚠️
lowlatency: Absent ⚠️
Regular
5.8 and 5.11 ⚠️struct hlist_node cpuhp_node
5.11 and 5.13 ⚠️struct io_wq_hash *hash
atomic_t worker_refs
struct completion worker_done
struct task_struct *task
struct task_struct *manager
struct user_struct *user
struct completion done
refcount_t use_refs
5.13 and 5.15 ⚠️refcount_t refs
struct io_wqe **wqes ➡️ struct io_wqe * wqes[0]
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ⚠️struct io_wq_acct acct[2]
raw_spinlock_t lock
struct hlist_nulls_head free_list
struct list_head all_list
struct wait_queue_entry wait
struct io_wq_work * hash_tail[64]
cpumask_var_t cpu_mask
struct io_wqe * wqes[0]
6.5 and 6.8 ✅