Index: linux-2.6.19-rc3/kernel/sched.c =================================================================== --- linux-2.6.19-rc3.orig/kernel/sched.c 2006-10-27 13:52:29.000000000 -0500 +++ linux-2.6.19-rc3/kernel/sched.c 2006-10-27 15:24:44.814684399 -0500 @@ -2756,14 +2756,18 @@ out_balanced: static void idle_balance(int this_cpu, struct rq *this_rq) { struct sched_domain *sd; + int found_tasks = 0; for_each_domain(this_cpu, sd) { if (sd->flags & SD_BALANCE_NEWIDLE) { /* If we've pulled tasks over stop searching: */ - if (load_balance_newidle(this_cpu, this_rq, sd)) + found_tasks = load_balance_newidle(this_cpu, this_rq, sd); + if (found_tasks) break; } } + if (!found_tasks) + rq->next_balance = jiffies; } /*