Lines Matching refs:sgs
7916 group_has_capacity(struct lb_env *env, struct sg_lb_stats *sgs) in group_has_capacity() argument
7918 if (sgs->sum_nr_running < sgs->group_weight) in group_has_capacity()
7921 if ((sgs->group_capacity * 100) > in group_has_capacity()
7922 (sgs->group_util * env->sd->imbalance_pct)) in group_has_capacity()
7937 group_is_overloaded(struct lb_env *env, struct sg_lb_stats *sgs) in group_is_overloaded() argument
7939 if (sgs->sum_nr_running <= sgs->group_weight) in group_is_overloaded()
7942 if ((sgs->group_capacity * 100) < in group_is_overloaded()
7943 (sgs->group_util * env->sd->imbalance_pct)) in group_is_overloaded()
7971 struct sg_lb_stats *sgs) in group_classify() argument
7973 if (sgs->group_no_capacity) in group_classify()
7979 if (sgs->group_misfit_task_load) in group_classify()
8016 struct sg_lb_stats *sgs, in update_sg_lb_stats() argument
8021 memset(sgs, 0, sizeof(*sgs)); in update_sg_lb_stats()
8029 sgs->group_load += cpu_runnable_load(rq); in update_sg_lb_stats()
8030 sgs->group_util += cpu_util(i); in update_sg_lb_stats()
8031 sgs->sum_nr_running += rq->cfs.h_nr_running; in update_sg_lb_stats()
8041 sgs->nr_numa_running += rq->nr_numa_running; in update_sg_lb_stats()
8042 sgs->nr_preferred_running += rq->nr_preferred_running; in update_sg_lb_stats()
8048 sgs->idle_cpus++; in update_sg_lb_stats()
8051 sgs->group_misfit_task_load < rq->misfit_task_load) { in update_sg_lb_stats()
8052 sgs->group_misfit_task_load = rq->misfit_task_load; in update_sg_lb_stats()
8058 sgs->group_capacity = group->sgc->capacity; in update_sg_lb_stats()
8059 sgs->avg_load = (sgs->group_load*SCHED_CAPACITY_SCALE) / sgs->group_capacity; in update_sg_lb_stats()
8061 if (sgs->sum_nr_running) in update_sg_lb_stats()
8062 sgs->load_per_task = sgs->group_load / sgs->sum_nr_running; in update_sg_lb_stats()
8064 sgs->group_weight = group->group_weight; in update_sg_lb_stats()
8066 sgs->group_no_capacity = group_is_overloaded(env, sgs); in update_sg_lb_stats()
8067 sgs->group_type = group_classify(group, sgs); in update_sg_lb_stats()
8086 struct sg_lb_stats *sgs) in update_sd_pick_busiest() argument
8096 if (sgs->group_type == group_misfit_task && in update_sd_pick_busiest()
8101 if (sgs->group_type > busiest->group_type) in update_sd_pick_busiest()
8104 if (sgs->group_type < busiest->group_type) in update_sd_pick_busiest()
8107 if (sgs->avg_load <= busiest->avg_load) in update_sd_pick_busiest()
8119 if (sgs->sum_nr_running <= sgs->group_weight && in update_sd_pick_busiest()
8126 if (sgs->group_type == group_misfit_task && in update_sd_pick_busiest()
8127 sgs->group_misfit_task_load < busiest->group_misfit_task_load) in update_sd_pick_busiest()
8143 if (sgs->sum_nr_running && in update_sd_pick_busiest()
8158 static inline enum fbq_type fbq_classify_group(struct sg_lb_stats *sgs) in fbq_classify_group() argument
8160 if (sgs->sum_nr_running > sgs->nr_numa_running) in fbq_classify_group()
8162 if (sgs->sum_nr_running > sgs->nr_preferred_running) in fbq_classify_group()
8176 static inline enum fbq_type fbq_classify_group(struct sg_lb_stats *sgs) in fbq_classify_group() argument
8207 struct sg_lb_stats *sgs = &tmp_sgs; in update_sd_lb_stats() local
8213 sgs = local; in update_sd_lb_stats()
8220 update_sg_lb_stats(env, sg, sgs, &sg_status); in update_sd_lb_stats()
8237 (sgs->sum_nr_running > local->sum_nr_running + 1)) { in update_sd_lb_stats()
8238 sgs->group_no_capacity = 1; in update_sd_lb_stats()
8239 sgs->group_type = group_classify(sg, sgs); in update_sd_lb_stats()
8242 if (update_sd_pick_busiest(env, sds, sg, sgs)) { in update_sd_lb_stats()
8244 sds->busiest_stat = *sgs; in update_sd_lb_stats()
8249 sds->total_running += sgs->sum_nr_running; in update_sd_lb_stats()
8250 sds->total_load += sgs->group_load; in update_sd_lb_stats()
8251 sds->total_capacity += sgs->group_capacity; in update_sd_lb_stats()