Loading kernel/sched/fair.c +2 −14 Original line number Diff line number Diff line Loading @@ -3938,17 +3938,6 @@ struct find_best_target_env { bool strict_max; }; static inline bool prefer_spread_on_idle(int cpu) { if (likely(!sysctl_sched_prefer_spread)) return false; if (is_min_capacity_cpu(cpu)) return sysctl_sched_prefer_spread >= 1; return sysctl_sched_prefer_spread > 1; } static inline void adjust_cpus_for_packing(struct task_struct *p, int *target_cpu, int *best_idle_cpu, int shallowest_idle_cstate, Loading Loading @@ -10482,8 +10471,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, env.prefer_spread = (prefer_spread_on_idle(this_cpu) && !((sd->flags & SD_ASYM_CPUCAPACITY) && !cpumask_test_cpu(this_cpu, &asym_cap_sibling_cpus))); !is_asym_cap_cpu(this_cpu))); cpumask_and(cpus, sched_domain_span(sd), cpu_active_mask); Loading Loading @@ -11690,7 +11678,7 @@ static int idle_balance(struct rq *this_rq, struct rq_flags *rf) if (prefer_spread && !force_lb && (sd->flags & SD_ASYM_CPUCAPACITY) && !(cpumask_test_cpu(this_cpu, &asym_cap_sibling_cpus))) !is_asym_cap_cpu(this_cpu)) avg_idle = this_rq->avg_idle; if (avg_idle < curr_cost + sd->max_newidle_lb_cost) { Loading kernel/sched/sched.h +7 −0 Original line number Diff line number Diff line Loading @@ -2687,6 +2687,11 @@ extern void add_new_task_to_grp(struct task_struct *new); #define RESTRAINED_BOOST_DISABLE -3 #define MAX_NUM_BOOST_TYPE (RESTRAINED_BOOST+1) static inline bool is_asym_cap_cpu(int cpu) { return cpumask_test_cpu(cpu, &asym_cap_sibling_cpus); } static inline int asym_cap_siblings(int cpu1, int cpu2) { return (cpumask_test_cpu(cpu1, &asym_cap_sibling_cpus) && Loading Loading @@ -2996,6 +3001,8 @@ static inline struct sched_cluster *rq_cluster(struct rq *rq) return NULL; } static inline bool is_asym_cap_cpu(int cpu) { return false; } static inline int asym_cap_siblings(int cpu1, int cpu2) { return 0; } static inline bool asym_cap_sibling_group_has_capacity(int dst_cpu, int margin) Loading kernel/sched/walt.h +16 −0 Original line number Diff line number Diff line Loading @@ -445,8 +445,24 @@ static int in_sched_bug; } \ }) static inline bool prefer_spread_on_idle(int cpu) { if (likely(!sysctl_sched_prefer_spread)) return false; if (is_min_capacity_cpu(cpu)) return sysctl_sched_prefer_spread >= 1; return sysctl_sched_prefer_spread > 1; } #else /* CONFIG_SCHED_WALT */ static inline bool prefer_spread_on_idle(int cpu) { return false; } static inline void walt_sched_init_rq(struct rq *rq) { } static inline void walt_rotate_work_init(void) { } Loading Loading
kernel/sched/fair.c +2 −14 Original line number Diff line number Diff line Loading @@ -3938,17 +3938,6 @@ struct find_best_target_env { bool strict_max; }; static inline bool prefer_spread_on_idle(int cpu) { if (likely(!sysctl_sched_prefer_spread)) return false; if (is_min_capacity_cpu(cpu)) return sysctl_sched_prefer_spread >= 1; return sysctl_sched_prefer_spread > 1; } static inline void adjust_cpus_for_packing(struct task_struct *p, int *target_cpu, int *best_idle_cpu, int shallowest_idle_cstate, Loading Loading @@ -10482,8 +10471,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, env.prefer_spread = (prefer_spread_on_idle(this_cpu) && !((sd->flags & SD_ASYM_CPUCAPACITY) && !cpumask_test_cpu(this_cpu, &asym_cap_sibling_cpus))); !is_asym_cap_cpu(this_cpu))); cpumask_and(cpus, sched_domain_span(sd), cpu_active_mask); Loading Loading @@ -11690,7 +11678,7 @@ static int idle_balance(struct rq *this_rq, struct rq_flags *rf) if (prefer_spread && !force_lb && (sd->flags & SD_ASYM_CPUCAPACITY) && !(cpumask_test_cpu(this_cpu, &asym_cap_sibling_cpus))) !is_asym_cap_cpu(this_cpu)) avg_idle = this_rq->avg_idle; if (avg_idle < curr_cost + sd->max_newidle_lb_cost) { Loading
kernel/sched/sched.h +7 −0 Original line number Diff line number Diff line Loading @@ -2687,6 +2687,11 @@ extern void add_new_task_to_grp(struct task_struct *new); #define RESTRAINED_BOOST_DISABLE -3 #define MAX_NUM_BOOST_TYPE (RESTRAINED_BOOST+1) static inline bool is_asym_cap_cpu(int cpu) { return cpumask_test_cpu(cpu, &asym_cap_sibling_cpus); } static inline int asym_cap_siblings(int cpu1, int cpu2) { return (cpumask_test_cpu(cpu1, &asym_cap_sibling_cpus) && Loading Loading @@ -2996,6 +3001,8 @@ static inline struct sched_cluster *rq_cluster(struct rq *rq) return NULL; } static inline bool is_asym_cap_cpu(int cpu) { return false; } static inline int asym_cap_siblings(int cpu1, int cpu2) { return 0; } static inline bool asym_cap_sibling_group_has_capacity(int dst_cpu, int margin) Loading
kernel/sched/walt.h +16 −0 Original line number Diff line number Diff line Loading @@ -445,8 +445,24 @@ static int in_sched_bug; } \ }) static inline bool prefer_spread_on_idle(int cpu) { if (likely(!sysctl_sched_prefer_spread)) return false; if (is_min_capacity_cpu(cpu)) return sysctl_sched_prefer_spread >= 1; return sysctl_sched_prefer_spread > 1; } #else /* CONFIG_SCHED_WALT */ static inline bool prefer_spread_on_idle(int cpu) { return false; } static inline void walt_sched_init_rq(struct rq *rq) { } static inline void walt_rotate_work_init(void) { } Loading