Index: MM-2.6.X/kernel/sched.c =================================================================== --- MM-2.6.X.orig/kernel/sched.c 2006-03-29 16:18:37.000000000 +1100 +++ MM-2.6.X/kernel/sched.c 2006-03-29 16:20:37.000000000 +1100 @@ -2290,13 +2290,10 @@ find_busiest_group(struct sched_domain * pwr_move /= SCHED_LOAD_SCALE; /* Move if we gain throughput */ - if (pwr_move > pwr_now) - *imbalance = busiest_load_per_task; - /* or if there's a reasonable chance that *imbalance is big - * enough to cause a move - */ - else if (*imbalance <= busiest_load_per_task / 2) + if (pwr_move <= pwr_now) goto out_balanced; + + *imbalance = busiest_load_per_task; } return busiest;