Lines Matching refs:busiest
9942 struct sched_group *busiest; /* Busiest group in this sd */ member
9963 .busiest = NULL, in init_sd_lb_stats()
10294 struct sg_lb_stats *busiest, in sibling_imbalance() argument
10300 if (!env->idle || !busiest->sum_nr_running) in sibling_imbalance()
10303 ncores_busiest = sds->busiest->cores; in sibling_imbalance()
10307 imbalance = busiest->sum_nr_running; in sibling_imbalance()
10313 imbalance = ncores_local * busiest->sum_nr_running; in sibling_imbalance()
10321 busiest->sum_nr_running > 1) in sibling_imbalance()
10453 struct sg_lb_stats *busiest = &sds->busiest_stat; in update_sd_pick_busiest() local
10471 if (sgs->group_type > busiest->group_type) in update_sd_pick_busiest()
10474 if (sgs->group_type < busiest->group_type) in update_sd_pick_busiest()
10485 return sgs->avg_load > busiest->avg_load; in update_sd_pick_busiest()
10496 return sched_asym_prefer(sds->busiest->asym_prefer_cpu, sg->asym_prefer_cpu); in update_sd_pick_busiest()
10503 return sgs->group_misfit_task_load > busiest->group_misfit_task_load; in update_sd_pick_busiest()
10510 if (sgs->idle_cpus != 0 || busiest->idle_cpus != 0) in update_sd_pick_busiest()
10528 if (sgs->avg_load < busiest->avg_load) in update_sd_pick_busiest()
10531 if (sgs->avg_load == busiest->avg_load) { in update_sd_pick_busiest()
10536 if (sds->busiest->flags & SD_SHARE_CPUCAPACITY) in update_sd_pick_busiest()
10548 if (smt_vs_nonsmt_groups(sds->busiest, sg)) { in update_sd_pick_busiest()
10563 if (sgs->idle_cpus > busiest->idle_cpus) in update_sd_pick_busiest()
10565 else if ((sgs->idle_cpus == busiest->idle_cpus) && in update_sd_pick_busiest()
10566 (sgs->sum_nr_running <= busiest->sum_nr_running)) in update_sd_pick_busiest()
11050 sds->busiest = sg; in update_sd_lb_stats()
11067 if (sds->busiest) in update_sd_lb_stats()
11068 sds->prefer_sibling = !!(sds->busiest->flags & SD_PREFER_SIBLING); in update_sd_lb_stats()
11095 struct sg_lb_stats *local, *busiest; in calculate_imbalance() local
11098 busiest = &sds->busiest_stat; in calculate_imbalance()
11100 if (busiest->group_type == group_misfit_task) { in calculate_imbalance()
11111 env->imbalance = busiest->group_misfit_task_load; in calculate_imbalance()
11116 if (busiest->group_type == group_asym_packing) { in calculate_imbalance()
11122 env->imbalance = busiest->sum_h_nr_running; in calculate_imbalance()
11126 if (busiest->group_type == group_smt_balance) { in calculate_imbalance()
11133 if (busiest->group_type == group_imbalanced) { in calculate_imbalance()
11150 if ((busiest->group_type > group_fully_busy) && in calculate_imbalance()
11179 if (busiest->group_weight == 1 || sds->prefer_sibling) { in calculate_imbalance()
11185 env->imbalance = sibling_imbalance(env, sds, busiest, local); in calculate_imbalance()
11194 (local->idle_cpus - busiest->idle_cpus)); in calculate_imbalance()
11229 if (local->avg_load >= busiest->avg_load) { in calculate_imbalance()
11258 (busiest->avg_load - sds->avg_load) * busiest->group_capacity, in calculate_imbalance()
11297 struct sg_lb_stats *local, *busiest; in sched_balance_find_src_group() local
11309 if (!sds.busiest) in sched_balance_find_src_group()
11312 busiest = &sds.busiest_stat; in sched_balance_find_src_group()
11315 if (busiest->group_type == group_misfit_task) in sched_balance_find_src_group()
11323 if (busiest->group_type == group_asym_packing) in sched_balance_find_src_group()
11331 if (busiest->group_type == group_imbalanced) in sched_balance_find_src_group()
11339 if (local->group_type > busiest->group_type) in sched_balance_find_src_group()
11351 if (local->avg_load >= busiest->avg_load) in sched_balance_find_src_group()
11369 if (100 * busiest->avg_load <= in sched_balance_find_src_group()
11379 sibling_imbalance(env, &sds, busiest, local) > 1) in sched_balance_find_src_group()
11382 if (busiest->group_type != group_overloaded) { in sched_balance_find_src_group()
11392 if (busiest->group_type == group_smt_balance && in sched_balance_find_src_group()
11393 smt_vs_nonsmt_groups(sds.local, sds.busiest)) { in sched_balance_find_src_group()
11398 if (busiest->group_weight > 1 && in sched_balance_find_src_group()
11399 local->idle_cpus <= (busiest->idle_cpus + 1)) { in sched_balance_find_src_group()
11412 if (busiest->sum_h_nr_running == 1) { in sched_balance_find_src_group()
11423 return env->imbalance ? sds.busiest : NULL; in sched_balance_find_src_group()
11436 struct rq *busiest = NULL, *rq; in sched_balance_find_src_rq() local
11526 busiest = rq; in sched_balance_find_src_rq()
11543 busiest = rq; in sched_balance_find_src_rq()
11550 busiest = rq; in sched_balance_find_src_rq()
11561 busiest = rq; in sched_balance_find_src_rq()
11569 return busiest; in sched_balance_find_src_rq()
11743 struct rq *busiest; in sched_balance_rq() local
11774 busiest = sched_balance_find_src_rq(&env, group); in sched_balance_rq()
11775 if (!busiest) { in sched_balance_rq()
11780 WARN_ON_ONCE(busiest == env.dst_rq); in sched_balance_rq()
11784 env.src_cpu = busiest->cpu; in sched_balance_rq()
11785 env.src_rq = busiest; in sched_balance_rq()
11790 if (busiest->nr_running > 1) { in sched_balance_rq()
11797 env.loop_max = min(sysctl_sched_nr_migrate, busiest->nr_running); in sched_balance_rq()
11800 rq_lock_irqsave(busiest, &rf); in sched_balance_rq()
11801 update_rq_clock(busiest); in sched_balance_rq()
11817 rq_unlock(busiest, &rf); in sched_balance_rq()
11880 __cpumask_clear_cpu(cpu_of(busiest), cpus); in sched_balance_rq()
11916 raw_spin_rq_lock_irqsave(busiest, flags); in sched_balance_rq()
11923 if (!cpumask_test_cpu(this_cpu, busiest->curr->cpus_ptr)) { in sched_balance_rq()
11924 raw_spin_rq_unlock_irqrestore(busiest, flags); in sched_balance_rq()
11936 if (!busiest->active_balance) { in sched_balance_rq()
11937 busiest->active_balance = 1; in sched_balance_rq()
11938 busiest->push_cpu = this_cpu; in sched_balance_rq()
11943 raw_spin_rq_unlock_irqrestore(busiest, flags); in sched_balance_rq()
11945 stop_one_cpu_nowait(cpu_of(busiest), in sched_balance_rq()
11946 active_load_balance_cpu_stop, busiest, in sched_balance_rq()
11947 &busiest->active_balance_work); in sched_balance_rq()