Lines Matching refs:sgs
6206 group_has_capacity(struct lb_env *env, struct sg_lb_stats *sgs) in group_has_capacity() argument
6208 if (sgs->sum_nr_running < sgs->group_weight) in group_has_capacity()
6211 if ((sgs->group_capacity * 100) > in group_has_capacity()
6212 (sgs->group_usage * env->sd->imbalance_pct)) in group_has_capacity()
6227 group_is_overloaded(struct lb_env *env, struct sg_lb_stats *sgs) in group_is_overloaded() argument
6229 if (sgs->sum_nr_running <= sgs->group_weight) in group_is_overloaded()
6232 if ((sgs->group_capacity * 100) < in group_is_overloaded()
6233 (sgs->group_usage * env->sd->imbalance_pct)) in group_is_overloaded()
6241 struct sg_lb_stats *sgs) in group_classify() argument
6243 if (sgs->group_no_capacity) in group_classify()
6263 int local_group, struct sg_lb_stats *sgs, in update_sg_lb_stats() argument
6269 memset(sgs, 0, sizeof(*sgs)); in update_sg_lb_stats()
6280 sgs->group_load += load; in update_sg_lb_stats()
6281 sgs->group_usage += get_cpu_usage(i); in update_sg_lb_stats()
6282 sgs->sum_nr_running += rq->cfs.h_nr_running; in update_sg_lb_stats()
6288 sgs->nr_numa_running += rq->nr_numa_running; in update_sg_lb_stats()
6289 sgs->nr_preferred_running += rq->nr_preferred_running; in update_sg_lb_stats()
6291 sgs->sum_weighted_load += weighted_cpuload(i); in update_sg_lb_stats()
6293 sgs->idle_cpus++; in update_sg_lb_stats()
6297 sgs->group_capacity = group->sgc->capacity; in update_sg_lb_stats()
6298 sgs->avg_load = (sgs->group_load*SCHED_CAPACITY_SCALE) / sgs->group_capacity; in update_sg_lb_stats()
6300 if (sgs->sum_nr_running) in update_sg_lb_stats()
6301 sgs->load_per_task = sgs->sum_weighted_load / sgs->sum_nr_running; in update_sg_lb_stats()
6303 sgs->group_weight = group->group_weight; in update_sg_lb_stats()
6305 sgs->group_no_capacity = group_is_overloaded(env, sgs); in update_sg_lb_stats()
6306 sgs->group_type = group_classify(env, group, sgs); in update_sg_lb_stats()
6325 struct sg_lb_stats *sgs) in update_sd_pick_busiest() argument
6329 if (sgs->group_type > busiest->group_type) in update_sd_pick_busiest()
6332 if (sgs->group_type < busiest->group_type) in update_sd_pick_busiest()
6335 if (sgs->avg_load <= busiest->avg_load) in update_sd_pick_busiest()
6347 if (sgs->sum_nr_running && env->dst_cpu < group_first_cpu(sg)) { in update_sd_pick_busiest()
6359 static inline enum fbq_type fbq_classify_group(struct sg_lb_stats *sgs) in fbq_classify_group() argument
6361 if (sgs->sum_nr_running > sgs->nr_numa_running) in fbq_classify_group()
6363 if (sgs->sum_nr_running > sgs->nr_preferred_running) in fbq_classify_group()
6377 static inline enum fbq_type fbq_classify_group(struct sg_lb_stats *sgs) in fbq_classify_group() argument
6407 struct sg_lb_stats *sgs = &tmp_sgs; in update_sd_lb_stats() local
6413 sgs = &sds->local_stat; in update_sd_lb_stats()
6420 update_sg_lb_stats(env, sg, load_idx, local_group, sgs, in update_sd_lb_stats()
6438 (sgs->sum_nr_running > 1)) { in update_sd_lb_stats()
6439 sgs->group_no_capacity = 1; in update_sd_lb_stats()
6440 sgs->group_type = group_overloaded; in update_sd_lb_stats()
6443 if (update_sd_pick_busiest(env, sds, sg, sgs)) { in update_sd_lb_stats()
6445 sds->busiest_stat = *sgs; in update_sd_lb_stats()
6450 sds->total_load += sgs->group_load; in update_sd_lb_stats()
6451 sds->total_capacity += sgs->group_capacity; in update_sd_lb_stats()