Index: linux-2.6.22-rc4-mm2/kernel/sched.c =================================================================== --- linux-2.6.22-rc4-mm2.orig/kernel/sched.c 2007-06-18 10:56:31.000000000 -0700 +++ linux-2.6.22-rc4-mm2/kernel/sched.c 2007-06-18 10:57:10.000000000 -0700 @@ -2493,17 +2493,16 @@ static void idle_balance(int this_cpu, s unsigned long next_balance = jiffies + 60 * HZ; for_each_domain(this_cpu, sd) { - if (sd->flags & SD_BALANCE_NEWIDLE) { + if (sd->flags & SD_BALANCE_NEWIDLE) /* If we've pulled tasks over stop searching: */ pulled_task = load_balance_newidle(this_cpu, this_rq, sd); - if (time_after(next_balance, - sd->last_balance + sd->balance_interval)) - next_balance = sd->last_balance - + sd->balance_interval; - if (pulled_task) - break; - } + if (time_after(next_balance, + sd->last_balance + sd->balance_interval)) + next_balance = sd->last_balance + + sd->balance_interval; + if (pulled_task) + break; } if (!pulled_task) /*