Lines Matching refs:sds

5939 	struct sched_domain_shared *sds;  in set_idle_cores()  local
5941 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in set_idle_cores()
5942 if (sds) in set_idle_cores()
5943 WRITE_ONCE(sds->has_idle_cores, val); in set_idle_cores()
5948 struct sched_domain_shared *sds; in test_idle_cores() local
5950 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in test_idle_cores()
5951 if (sds) in test_idle_cores()
5952 return READ_ONCE(sds->has_idle_cores); in test_idle_cores()
7536 static inline void init_sd_lb_stats(struct sd_lb_stats *sds) in init_sd_lb_stats() argument
7544 *sds = (struct sd_lb_stats){ in init_sd_lb_stats()
7909 struct sd_lb_stats *sds, in update_sd_pick_busiest() argument
7913 struct sg_lb_stats *busiest = &sds->busiest_stat; in update_sd_pick_busiest()
7934 group_smaller_cpu_capacity(sds->local, sg)) 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()
7999 static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sds) in update_sd_lb_stats() argument
8003 struct sg_lb_stats *local = &sds->local_stat; in update_sd_lb_stats()
8024 sds->local = sg; in update_sd_lb_stats()
8048 if (prefer_sibling && sds->local && in update_sd_lb_stats()
8055 if (update_sd_pick_busiest(env, sds, sg, sgs)) { in update_sd_lb_stats()
8056 sds->busiest = sg; in update_sd_lb_stats()
8057 sds->busiest_stat = *sgs; in update_sd_lb_stats()
8062 sds->total_running += sgs->sum_nr_running; in update_sd_lb_stats()
8063 sds->total_load += sgs->group_load; in update_sd_lb_stats()
8064 sds->total_capacity += sgs->group_capacity; in update_sd_lb_stats()
8079 env->fbq_type = fbq_classify_group(&sds->busiest_stat); in update_sd_lb_stats()
8111 static int check_asym_packing(struct lb_env *env, struct sd_lb_stats *sds) in check_asym_packing() argument
8121 if (!sds->busiest) in check_asym_packing()
8124 busiest_cpu = sds->busiest->asym_prefer_cpu; in check_asym_packing()
8129 sds->busiest_stat.avg_load * sds->busiest_stat.group_capacity, in check_asym_packing()
8143 void fix_small_imbalance(struct lb_env *env, struct sd_lb_stats *sds) in fix_small_imbalance() argument
8150 local = &sds->local_stat; in fix_small_imbalance()
8151 busiest = &sds->busiest_stat; in fix_small_imbalance()
8211 static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *sds) in calculate_imbalance() argument
8216 local = &sds->local_stat; in calculate_imbalance()
8217 busiest = &sds->busiest_stat; 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()
8235 local->avg_load >= sds->avg_load) { in calculate_imbalance()
8237 return fix_small_imbalance(env, sds); in calculate_imbalance()
8261 max_pull = min(busiest->avg_load - sds->avg_load, load_above_capacity); in calculate_imbalance()
8266 (sds->avg_load - local->avg_load) * local->group_capacity in calculate_imbalance()
8276 return fix_small_imbalance(env, sds); in calculate_imbalance()
8295 struct sd_lb_stats sds; in find_busiest_group() local
8297 init_sd_lb_stats(&sds); in find_busiest_group()
8303 update_sd_lb_stats(env, &sds); in find_busiest_group()
8304 local = &sds.local_stat; in find_busiest_group()
8305 busiest = &sds.busiest_stat; in find_busiest_group()
8308 if (check_asym_packing(env, &sds)) 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()
8316 sds.avg_load = (SCHED_CAPACITY_SCALE * sds.total_load) in find_busiest_group()
8317 / sds.total_capacity; in find_busiest_group()
8346 if (local->avg_load >= sds.avg_load) in find_busiest_group()
8372 calculate_imbalance(env, &sds); in find_busiest_group()
8373 return env->imbalance ? sds.busiest : NULL; in find_busiest_group()
9102 struct sched_domain_shared *sds; in nohz_balancer_kick() local
9136 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in nohz_balancer_kick()
9137 if (sds) { in nohz_balancer_kick()
9142 nr_busy = atomic_read(&sds->nr_busy_cpus); in nohz_balancer_kick()