Loading kernel/sched/fair.c +36 −19 Original line number Diff line number Diff line Loading @@ -2232,6 +2232,11 @@ static inline int nr_big_tasks(struct rq *rq) #define sched_enable_power_aware 0 static inline int task_will_fit(struct task_struct *p, int cpu) { return 1; } static inline int select_best_cpu(struct task_struct *p, int target, int reason) { return 0; Loading Loading @@ -5074,6 +5079,8 @@ struct lb_env { long imbalance; /* The set of CPUs under consideration for load-balancing */ struct cpumask *cpus; unsigned int busiest_grp_capacity; unsigned int busiest_nr_running; unsigned int flags; Loading Loading @@ -5156,6 +5163,10 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) if (env->flags & LBF_IGNORE_SMALL_TASKS && is_small_task(p)) return 0; if (!task_will_fit(p, env->dst_cpu) && env->busiest_nr_running <= env->busiest_grp_capacity) return 0; if (!cpumask_test_cpu(env->dst_cpu, tsk_cpus_allowed(p))) { int cpu; Loading Loading @@ -5966,9 +5977,11 @@ static inline void update_sd_lb_stats(struct lb_env *env, } else if (update_sd_pick_busiest(env, sds, sg, &sgs)) { sds->max_load = sgs.avg_load; sds->busiest = sg; sds->busiest_nr_running = sgs.sum_nr_running; env->busiest_nr_running = sds->busiest_nr_running = sgs.sum_nr_running; sds->busiest_idle_cpus = sgs.idle_cpus; sds->busiest_group_capacity = sgs.group_capacity; env->busiest_grp_capacity = sds->busiest_group_capacity = sgs.group_capacity; sds->busiest_load_per_task = sgs.sum_weighted_load; sds->busiest_has_capacity = sgs.group_has_capacity; sds->busiest_group_weight = sgs.group_weight; Loading Loading @@ -6410,6 +6423,8 @@ static int load_balance(int this_cpu, struct rq *this_rq, .dst_rq = this_rq, .dst_grpmask = sched_group_cpus(sd->groups), .idle = idle, .busiest_nr_running = 0, .busiest_grp_capacity = 0, .loop_break = sched_nr_migrate_break, .cpus = cpus, .flags = 0, Loading Loading @@ -6757,6 +6772,8 @@ static int active_load_balance_cpu_stop(void *data) .src_cpu = busiest_rq->cpu, .src_rq = busiest_rq, .idle = CPU_IDLE, .busiest_nr_running = 0, .busiest_grp_capacity = 0, .flags = 0, .loop = 0, }; Loading Loading
kernel/sched/fair.c +36 −19 Original line number Diff line number Diff line Loading @@ -2232,6 +2232,11 @@ static inline int nr_big_tasks(struct rq *rq) #define sched_enable_power_aware 0 static inline int task_will_fit(struct task_struct *p, int cpu) { return 1; } static inline int select_best_cpu(struct task_struct *p, int target, int reason) { return 0; Loading Loading @@ -5074,6 +5079,8 @@ struct lb_env { long imbalance; /* The set of CPUs under consideration for load-balancing */ struct cpumask *cpus; unsigned int busiest_grp_capacity; unsigned int busiest_nr_running; unsigned int flags; Loading Loading @@ -5156,6 +5163,10 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) if (env->flags & LBF_IGNORE_SMALL_TASKS && is_small_task(p)) return 0; if (!task_will_fit(p, env->dst_cpu) && env->busiest_nr_running <= env->busiest_grp_capacity) return 0; if (!cpumask_test_cpu(env->dst_cpu, tsk_cpus_allowed(p))) { int cpu; Loading Loading @@ -5966,9 +5977,11 @@ static inline void update_sd_lb_stats(struct lb_env *env, } else if (update_sd_pick_busiest(env, sds, sg, &sgs)) { sds->max_load = sgs.avg_load; sds->busiest = sg; sds->busiest_nr_running = sgs.sum_nr_running; env->busiest_nr_running = sds->busiest_nr_running = sgs.sum_nr_running; sds->busiest_idle_cpus = sgs.idle_cpus; sds->busiest_group_capacity = sgs.group_capacity; env->busiest_grp_capacity = sds->busiest_group_capacity = sgs.group_capacity; sds->busiest_load_per_task = sgs.sum_weighted_load; sds->busiest_has_capacity = sgs.group_has_capacity; sds->busiest_group_weight = sgs.group_weight; Loading Loading @@ -6410,6 +6423,8 @@ static int load_balance(int this_cpu, struct rq *this_rq, .dst_rq = this_rq, .dst_grpmask = sched_group_cpus(sd->groups), .idle = idle, .busiest_nr_running = 0, .busiest_grp_capacity = 0, .loop_break = sched_nr_migrate_break, .cpus = cpus, .flags = 0, Loading Loading @@ -6757,6 +6772,8 @@ static int active_load_balance_cpu_stop(void *data) .src_cpu = busiest_rq->cpu, .src_rq = busiest_rq, .idle = CPU_IDLE, .busiest_nr_running = 0, .busiest_grp_capacity = 0, .flags = 0, .loop = 0, }; Loading