On Thu, Aug 22, 2013 at 01:58:28AM -0700, Paul Turner wrote: > > wl_i / power_i > wl_j / power_j := > > wl_i * power_j > wl_j * power_i > > > > struct rq *busiest = NULL, *rq; > > - unsigned long max_load = 0; > > + unsigned long busiest_load = 0, busiest_power = SCHED_POWER_SCALE; > > Initializing this to SCHED_POWER_SCALE assigns a meaning that isn't > really there. How about just 1?
Right, 1 works, all we really need is for wl to be > 0. > > int i; > > > > for_each_cpu(i, sched_group_cpus(group)) { > > @@ -5049,10 +5049,9 @@ static struct rq *find_busiest_queue(str > > * the load can be moved away from the cpu that is > > potentially > > * running at a lower capacity. > > */ > > - wl = (wl * SCHED_POWER_SCALE) / power; > > - > > - if (wl > max_load) { > > - max_load = wl; > > A comment wouldn't hurt here. Agreed, something like so? /* * Since we're looking for max(wl_i / power_i) crosswise multiplication * to rid ourselves of the division works out to: * wl_i * power_j > wl_j * power_i; where j is our previous maximum. */ > > + if (wl * busiest_power > busiest_load * power) { > > + busiest_load = wl; > > + busiest_power = power; > > busiest = rq; > > } > > } > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/