psi_groupRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: ✅struct psi_group {
struct mutex stat_lock;
struct psi_group_cpu *pcpu;
u64 total_prev[5];
u64 last_update;
u64 next_update;
struct delayed_work clock_work;
u64 total[5];
long unsigned int avg[15];
};
5.3: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
5.4: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
5.8: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
5.11: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
struct task_struct *poll_task;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
atomic_t poll_wakeup;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
5.13: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[12];
long unsigned int avg[18];
struct task_struct *poll_task;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
atomic_t poll_wakeup;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[6];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[6];
u64 polling_next_update;
u64 polling_until;
};
5.15: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[12];
long unsigned int avg[18];
struct task_struct *poll_task;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
atomic_t poll_wakeup;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[6];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[6];
u64 polling_next_update;
u64 polling_until;
};
5.19: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[12];
long unsigned int avg[18];
struct task_struct *poll_task;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
atomic_t poll_wakeup;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[6];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[6];
u64 polling_next_update;
u64 polling_until;
};
6.2: ✅struct psi_group {
struct psi_group *parent;
bool enabled;
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[12];
long unsigned int avg[18];
struct task_struct *poll_task;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
atomic_t poll_wakeup;
atomic_t poll_scheduled;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[6];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[6];
u64 polling_next_update;
u64 polling_until;
};
6.5: ✅struct psi_group {
struct psi_group *parent;
bool enabled;
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
struct list_head avg_triggers;
u32 avg_nr_triggers[6];
u64 total[12];
long unsigned int avg[18];
struct task_struct *rtpoll_task;
struct timer_list rtpoll_timer;
wait_queue_head_t rtpoll_wait;
atomic_t rtpoll_wakeup;
atomic_t rtpoll_scheduled;
struct mutex rtpoll_trigger_lock;
struct list_head rtpoll_triggers;
u32 rtpoll_nr_triggers[6];
u32 rtpoll_states;
u64 rtpoll_min_period;
u64 rtpoll_total[6];
u64 rtpoll_next_update;
u64 rtpoll_until;
};
6.8: ✅struct psi_group {
struct psi_group *parent;
bool enabled;
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
struct list_head avg_triggers;
u32 avg_nr_triggers[6];
u64 total[12];
long unsigned int avg[18];
struct task_struct *rtpoll_task;
struct timer_list rtpoll_timer;
wait_queue_head_t rtpoll_wait;
atomic_t rtpoll_wakeup;
atomic_t rtpoll_scheduled;
struct mutex rtpoll_trigger_lock;
struct list_head rtpoll_triggers;
u32 rtpoll_nr_triggers[6];
u32 rtpoll_states;
u64 rtpoll_min_period;
u64 rtpoll_total[6];
u64 rtpoll_next_update;
u64 rtpoll_until;
};
arm64: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
armhf: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
ppc64el: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
riscv64: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
aws: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
azure: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
gcp: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
lowlatency: ✅struct psi_group {
struct mutex avgs_lock;
struct psi_group_cpu *pcpu;
u64 avg_total[5];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
u64 total[10];
long unsigned int avg[15];
atomic_t poll_scheduled;
struct kthread_worker *poll_kworker;
struct kthread_delayed_work poll_work;
struct mutex trigger_lock;
struct list_head triggers;
u32 nr_triggers[5];
u32 poll_states;
u64 poll_min_period;
u64 polling_total[5];
u64 polling_next_update;
u64 polling_until;
};
Regular
5.0 and 5.3 ⚠️struct mutex avgs_lock
u64 avg_total[5]
u64 avg_last_update
u64 avg_next_update
struct delayed_work avgs_work
atomic_t poll_scheduled
struct kthread_worker *poll_kworker
struct kthread_delayed_work poll_work
struct mutex trigger_lock
struct list_head triggers
u32 nr_triggers[5]
u32 poll_states
u64 poll_min_period
u64 polling_total[5]
u64 polling_next_update
u64 polling_until
struct mutex stat_lock
u64 total_prev[5]
u64 last_update
u64 next_update
struct delayed_work clock_work
u64 total[5] ➡️ u64 total[10]
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ⚠️struct task_struct *poll_task
struct timer_list poll_timer
wait_queue_head_t poll_wait
atomic_t poll_wakeup
atomic_t poll_scheduled
struct kthread_worker *poll_kworker
struct kthread_delayed_work poll_work
5.11 and 5.13 ⚠️u64 avg_total[5] ➡️ u64 avg_total[6]
u64 total[10] ➡️ u64 total[12]
long unsigned int avg[15] ➡️ long unsigned int avg[18]
u32 nr_triggers[5] ➡️ u32 nr_triggers[6]
u64 polling_total[5] ➡️ u64 polling_total[6]
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ⚠️struct psi_group *parent
bool enabled
atomic_t poll_scheduled
6.2 and 6.5 ⚠️struct list_head avg_triggers
u32 avg_nr_triggers[6]
struct task_struct *rtpoll_task
struct timer_list rtpoll_timer
wait_queue_head_t rtpoll_wait
atomic_t rtpoll_wakeup
atomic_t rtpoll_scheduled
struct mutex rtpoll_trigger_lock
struct list_head rtpoll_triggers
u32 rtpoll_nr_triggers[6]
u32 rtpoll_states
u64 rtpoll_min_period
u64 rtpoll_total[6]
u64 rtpoll_next_update
u64 rtpoll_until
struct task_struct *poll_task
struct timer_list poll_timer
wait_queue_head_t poll_wait
atomic_t poll_wakeup
atomic_t poll_scheduled
struct mutex trigger_lock
struct list_head triggers
u32 nr_triggers[6]
u32 poll_states
u64 poll_min_period
u64 polling_total[6]
u64 polling_next_update
u64 polling_until
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 ✅