Loading kernel/sched/core_ctl.c +6 −1 Original line number Diff line number Diff line Loading @@ -761,7 +761,12 @@ static bool eval_need(struct cluster_data *cluster) if (new_need > cluster->active_cpus) { ret = 1; } else { if (new_need == last_need) { /* * When there is no change in need and there are no more * active CPUs than currently needed, just update the * need time stamp and return. */ if (new_need == last_need && new_need == cluster->active_cpus) { cluster->need_ts = now; spin_unlock_irqrestore(&state_lock, flags); return 0; Loading kernel/sched/fair.c +7 −0 Original line number Diff line number Diff line Loading @@ -7053,6 +7053,13 @@ static inline bool skip_sg(struct task_struct *p, struct sched_group *sg, if (!sg->group_weight) return true; /* * Don't skip a group if a task affinity allows it * to run only on that group. */ if (cpumask_subset(&p->cpus_allowed, sched_group_span(sg))) return false; if (!task_fits_max(p, fcpu)) return true; Loading Loading
kernel/sched/core_ctl.c +6 −1 Original line number Diff line number Diff line Loading @@ -761,7 +761,12 @@ static bool eval_need(struct cluster_data *cluster) if (new_need > cluster->active_cpus) { ret = 1; } else { if (new_need == last_need) { /* * When there is no change in need and there are no more * active CPUs than currently needed, just update the * need time stamp and return. */ if (new_need == last_need && new_need == cluster->active_cpus) { cluster->need_ts = now; spin_unlock_irqrestore(&state_lock, flags); return 0; Loading
kernel/sched/fair.c +7 −0 Original line number Diff line number Diff line Loading @@ -7053,6 +7053,13 @@ static inline bool skip_sg(struct task_struct *p, struct sched_group *sg, if (!sg->group_weight) return true; /* * Don't skip a group if a task affinity allows it * to run only on that group. */ if (cpumask_subset(&p->cpus_allowed, sched_group_span(sg))) return false; if (!task_fits_max(p, fcpu)) return true; Loading