sched_class
Regular
4.4
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_waking)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_move_group)(struct task_struct *);
};
4.8
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct pin_cookie);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
4.10
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct pin_cookie);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
4.13
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
4.15
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
4.18
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.0
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.3
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*set_curr_task)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.4
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.8
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.11
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.13
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.15
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
5.19
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
6.2
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *);
};
6.5
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *);
int (*task_is_throttled)(struct task_struct *, int);
};
6.8
: ✅struct sched_class {
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*wakeup_preempt)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *);
int (*task_is_throttled)(struct task_struct *, int);
};
arm64
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
armhf
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
ppc64el
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
riscv64
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
aws
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
azure
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
gcp
: ✅struct sched_class {
const struct sched_class *next;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
lowlatency
: ✅struct sched_class {
const struct sched_class *next;
int uclamp_enabled;
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *, bool);
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int, int);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *);
void (*rq_online)(struct rq *);
void (*rq_offline)(struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *, int);
};
Regular
4.4
and 4.8
⚠️void (*task_change_group)(struct task_struct *, int)
void (*task_waking)(struct task_struct *)
void (*task_move_group)(struct task_struct *)
struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *)
➡️ struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct pin_cookie)
4.8
and 4.10
✅
4.10
and 4.13
⚠️struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct pin_cookie)
➡️ struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *)
4.13
and 4.15
✅
4.15
and 4.18
✅
4.18
and 5.0
⚠️void (*migrate_task_rq)(struct task_struct *)
➡️ void (*migrate_task_rq)(struct task_struct *, int)
5.0
and 5.3
⚠️int uclamp_enabled
5.3
and 5.4
⚠️void (*set_next_task)(struct rq *, struct task_struct *, bool)
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *)
void (*set_curr_task)(struct rq *)
5.4
and 5.8
⚠️struct task_struct * (*pick_next_task)(struct rq *, struct task_struct *, struct rq_flags *)
➡️ struct task_struct * (*pick_next_task)(struct rq *)
5.8
and 5.11
⚠️struct rq * (*find_lock_rq)(struct task_struct *, struct rq *)
const struct sched_class *next
bool (*yield_to_task)(struct rq *, struct task_struct *, bool)
➡️ bool (*yield_to_task)(struct rq *, struct task_struct *)
int (*select_task_rq)(struct task_struct *, int, int, int)
➡️ int (*select_task_rq)(struct task_struct *, int, int)
void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *)
➡️ void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32)
5.11
and 5.13
✅
5.13
and 5.15
⚠️struct task_struct * (*pick_task)(struct rq *)
5.15
and 5.19
✅
5.19
and 6.2
⚠️void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32)
➡️ void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *)
void (*task_change_group)(struct task_struct *, int)
➡️ void (*task_change_group)(struct task_struct *)
6.2
and 6.5
⚠️int (*task_is_throttled)(struct task_struct *, int)
6.5
and 6.8
⚠️void (*wakeup_preempt)(struct rq *, struct task_struct *, int)
void (*check_preempt_curr)(struct rq *, struct task_struct *, int)
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
⚠️int uclamp_enabled
generic
and aws
✅
generic
and azure
✅
generic
and gcp
⚠️int uclamp_enabled
generic
and lowlatency
✅