On Thu, Aug 29, 2013 at 01:05:35PM -0700, Jason Low wrote:
> @@ -5299,14 +5300,29 @@ void idle_balance(int this_cpu, struct rq *this_rq)
>       for_each_domain(this_cpu, sd) {
>               unsigned long interval;
>               int balance = 1;
> +             u64 t0, domain_cost, max = 5*sysctl_sched_migration_cost;
>  
>               if (!(sd->flags & SD_LOAD_BALANCE))
>                       continue;
>  
> +             if (this_rq->avg_idle < curr_cost + sd->max_newidle_lb_cost)
> +                     break;
> +
>               if (sd->flags & SD_BALANCE_NEWIDLE) {
> +                     t0 = sched_clock_cpu(smp_processor_id());
> +
>                       /* If we've pulled tasks over stop searching: */
>                       pulled_task = load_balance(this_cpu, this_rq,
>                                                  sd, CPU_NEWLY_IDLE, 
> &balance);
> +
> +                     domain_cost = sched_clock_cpu(smp_processor_id()) - t0;
> +                     if (domain_cost > max)
> +                             domain_cost = max;
> +
> +                     if (domain_cost > sd->max_newidle_lb_cost)
> +                             sd->max_newidle_lb_cost = domain_cost;
> +
> +                     curr_cost += domain_cost;
>               }
>  
>               interval = msecs_to_jiffies(sd->balance_interval);

I did an s/smp_processor_id()/this_cpu/ on that.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to