Lines Matching refs:busiest

7525 	struct sched_group *busiest;	/* Busiest group in this sd */  member
7545 .busiest = NULL, in init_sd_lb_stats()
7913 struct sg_lb_stats *busiest = &sds->busiest_stat; in update_sd_pick_busiest() local
7915 if (sgs->group_type > busiest->group_type) in update_sd_pick_busiest()
7918 if (sgs->group_type < busiest->group_type) in update_sd_pick_busiest()
7921 if (sgs->avg_load <= busiest->avg_load) in update_sd_pick_busiest()
7952 if (!sds->busiest) in update_sd_pick_busiest()
7956 if (sched_asym_prefer(sds->busiest->asym_prefer_cpu, in update_sd_pick_busiest()
8056 sds->busiest = sg; in update_sd_lb_stats()
8121 if (!sds->busiest) in check_asym_packing()
8124 busiest_cpu = sds->busiest->asym_prefer_cpu; in check_asym_packing()
8148 struct sg_lb_stats *local, *busiest; in fix_small_imbalance() local
8151 busiest = &sds->busiest_stat; in fix_small_imbalance()
8155 else if (busiest->load_per_task > local->load_per_task) in fix_small_imbalance()
8159 (busiest->load_per_task * SCHED_CAPACITY_SCALE) / in fix_small_imbalance()
8160 busiest->group_capacity; in fix_small_imbalance()
8162 if (busiest->avg_load + scaled_busy_load_per_task >= in fix_small_imbalance()
8164 env->imbalance = busiest->load_per_task; in fix_small_imbalance()
8174 capa_now += busiest->group_capacity * in fix_small_imbalance()
8175 min(busiest->load_per_task, busiest->avg_load); in fix_small_imbalance()
8181 if (busiest->avg_load > scaled_busy_load_per_task) { in fix_small_imbalance()
8182 capa_move += busiest->group_capacity * in fix_small_imbalance()
8183 min(busiest->load_per_task, in fix_small_imbalance()
8184 busiest->avg_load - scaled_busy_load_per_task); in fix_small_imbalance()
8188 if (busiest->avg_load * busiest->group_capacity < in fix_small_imbalance()
8189 busiest->load_per_task * SCHED_CAPACITY_SCALE) { in fix_small_imbalance()
8190 tmp = (busiest->avg_load * busiest->group_capacity) / in fix_small_imbalance()
8193 tmp = (busiest->load_per_task * SCHED_CAPACITY_SCALE) / in fix_small_imbalance()
8202 env->imbalance = busiest->load_per_task; in fix_small_imbalance()
8214 struct sg_lb_stats *local, *busiest; in calculate_imbalance() local
8217 busiest = &sds->busiest_stat; in calculate_imbalance()
8219 if (busiest->group_type == group_imbalanced) { in calculate_imbalance()
8224 busiest->load_per_task = in calculate_imbalance()
8225 min(busiest->load_per_task, sds->avg_load); in calculate_imbalance()
8234 if (busiest->avg_load <= sds->avg_load || in calculate_imbalance()
8243 if (busiest->group_type == group_overloaded && in calculate_imbalance()
8245 load_above_capacity = busiest->sum_nr_running * SCHED_CAPACITY_SCALE; in calculate_imbalance()
8246 if (load_above_capacity > busiest->group_capacity) { in calculate_imbalance()
8247 load_above_capacity -= busiest->group_capacity; in calculate_imbalance()
8249 load_above_capacity /= busiest->group_capacity; in calculate_imbalance()
8261 max_pull = min(busiest->avg_load - sds->avg_load, load_above_capacity); in calculate_imbalance()
8265 max_pull * busiest->group_capacity, in calculate_imbalance()
8275 if (env->imbalance < busiest->load_per_task) in calculate_imbalance()
8294 struct sg_lb_stats *local, *busiest; in find_busiest_group() local
8305 busiest = &sds.busiest_stat; in find_busiest_group()
8309 return sds.busiest; in find_busiest_group()
8312 if (!sds.busiest || busiest->sum_nr_running == 0) in find_busiest_group()
8324 if (busiest->group_type == group_imbalanced) in find_busiest_group()
8332 busiest->group_no_capacity) in find_busiest_group()
8339 if (local->avg_load >= busiest->avg_load) in find_busiest_group()
8357 if ((busiest->group_type != group_overloaded) && in find_busiest_group()
8358 (local->idle_cpus <= (busiest->idle_cpus + 1))) in find_busiest_group()
8365 if (100 * busiest->avg_load <= in find_busiest_group()
8373 return env->imbalance ? sds.busiest : NULL; in find_busiest_group()
8386 struct rq *busiest = NULL, *rq; in find_busiest_queue() local
8446 busiest = rq; in find_busiest_queue()
8450 return busiest; in find_busiest_queue()
8542 struct rq *busiest; in load_balance() local
8574 busiest = find_busiest_queue(&env, group); in load_balance()
8575 if (!busiest) { in load_balance()
8580 BUG_ON(busiest == env.dst_rq); in load_balance()
8584 env.src_cpu = busiest->cpu; in load_balance()
8585 env.src_rq = busiest; in load_balance()
8588 if (busiest->nr_running > 1) { in load_balance()
8596 env.loop_max = min(sysctl_sched_nr_migrate, busiest->nr_running); in load_balance()
8599 rq_lock_irqsave(busiest, &rf); in load_balance()
8600 update_rq_clock(busiest); in load_balance()
8616 rq_unlock(busiest, &rf); in load_balance()
8679 cpumask_clear_cpu(cpu_of(busiest), cpus); in load_balance()
8711 raw_spin_lock_irqsave(&busiest->lock, flags); in load_balance()
8718 if (!cpumask_test_cpu(this_cpu, &busiest->curr->cpus_allowed)) { in load_balance()
8719 raw_spin_unlock_irqrestore(&busiest->lock, in load_balance()
8730 if (!busiest->active_balance) { in load_balance()
8731 busiest->active_balance = 1; in load_balance()
8732 busiest->push_cpu = this_cpu; in load_balance()
8735 raw_spin_unlock_irqrestore(&busiest->lock, flags); in load_balance()
8738 stop_one_cpu_nowait(cpu_of(busiest), in load_balance()
8739 active_load_balance_cpu_stop, busiest, in load_balance()
8740 &busiest->active_balance_work); in load_balance()