Lines Matching refs:sds
7563 struct sched_domain_shared *sds; in set_idle_cores() local
7565 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in set_idle_cores()
7566 if (sds) in set_idle_cores()
7567 WRITE_ONCE(sds->has_idle_cores, val); in set_idle_cores()
7572 struct sched_domain_shared *sds; in test_idle_cores() local
7574 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in test_idle_cores()
7575 if (sds) in test_idle_cores()
7576 return READ_ONCE(sds->has_idle_cores); in test_idle_cores()
9953 static inline void init_sd_lb_stats(struct sd_lb_stats *sds) in init_sd_lb_stats() argument
9962 *sds = (struct sd_lb_stats){ in init_sd_lb_stats()
10293 struct sd_lb_stats *sds, in sibling_imbalance() argument
10303 ncores_busiest = sds->busiest->cores; in sibling_imbalance()
10304 ncores_local = sds->local->cores; in sibling_imbalance()
10350 struct sd_lb_stats *sds, in update_sg_lb_stats() argument
10361 local_group = group == sds->local; in update_sg_lb_stats()
10449 struct sd_lb_stats *sds, in update_sd_pick_busiest() argument
10453 struct sg_lb_stats *busiest = &sds->busiest_stat; in update_sd_pick_busiest()
10468 sds->local_stat.group_type != group_has_spare)) in update_sd_pick_busiest()
10496 return sched_asym_prefer(sds->busiest->asym_prefer_cpu, sg->asym_prefer_cpu); 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()
11025 static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sds) in update_sd_lb_stats() argument
11028 struct sg_lb_stats *local = &sds->local_stat; in update_sd_lb_stats()
11039 sds->local = sg; in update_sd_lb_stats()
11047 update_sg_lb_stats(env, sds, sg, sgs, &sg_overloaded, &sg_overutilized); in update_sd_lb_stats()
11049 if (!local_group && update_sd_pick_busiest(env, sds, sg, sgs)) { in update_sd_lb_stats()
11050 sds->busiest = sg; in update_sd_lb_stats()
11051 sds->busiest_stat = *sgs; in update_sd_lb_stats()
11055 sds->total_load += sgs->group_load; in update_sd_lb_stats()
11056 sds->total_capacity += sgs->group_capacity; 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()
11072 env->fbq_type = fbq_classify_group(&sds->busiest_stat); in update_sd_lb_stats()
11093 static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *sds) in calculate_imbalance() argument
11097 local = &sds->local_stat; in calculate_imbalance()
11098 busiest = &sds->busiest_stat; 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()
11234 sds->avg_load = (sds->total_load * SCHED_CAPACITY_SCALE) / in calculate_imbalance()
11235 sds->total_capacity; in calculate_imbalance()
11241 if (local->avg_load >= sds->avg_load) { in calculate_imbalance()
11258 (busiest->avg_load - sds->avg_load) * busiest->group_capacity, in calculate_imbalance()
11259 (sds->avg_load - local->avg_load) * local->group_capacity in calculate_imbalance()
11298 struct sd_lb_stats sds; in sched_balance_find_src_group() local
11300 init_sd_lb_stats(&sds); in sched_balance_find_src_group()
11306 update_sd_lb_stats(env, &sds); in sched_balance_find_src_group()
11309 if (!sds.busiest) in sched_balance_find_src_group()
11312 busiest = &sds.busiest_stat; in sched_balance_find_src_group()
11334 local = &sds.local_stat; in sched_balance_find_src_group()
11355 sds.avg_load = (sds.total_load * SCHED_CAPACITY_SCALE) / in sched_balance_find_src_group()
11356 sds.total_capacity; in sched_balance_find_src_group()
11362 if (local->avg_load >= sds.avg_load) in sched_balance_find_src_group()
11378 if (sds.prefer_sibling && local->group_type == group_has_spare && in sched_balance_find_src_group()
11379 sibling_imbalance(env, &sds, busiest, local) > 1) in sched_balance_find_src_group()
11393 smt_vs_nonsmt_groups(sds.local, sds.busiest)) { in sched_balance_find_src_group()
11422 calculate_imbalance(env, &sds); in sched_balance_find_src_group()
11423 return env->imbalance ? sds.busiest : NULL; in sched_balance_find_src_group()
12352 struct sched_domain_shared *sds; in nohz_balancer_kick() local
12438 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); in nohz_balancer_kick()
12439 if (sds) { in nohz_balancer_kick()
12449 nr_busy = atomic_read(&sds->nr_busy_cpus); in nohz_balancer_kick()