Index: linux-2.6.19-rc3/kernel/sched.c =================================================================== --- linux-2.6.19-rc3.orig/kernel/sched.c 2006-10-28 20:00:07.000000000 -0500 +++ linux-2.6.19-rc3/kernel/sched.c 2006-10-28 20:04:08.721364884 -0500 @@ -2869,10 +2869,10 @@ static void rebalance_domains(unsigned l unsigned long interval; struct sched_domain *sd; /* - * A task is idle if this is the idle queue - * and we have no runnable task + * We are idle if there are no processes running. This + * is valid even if we are the idle process (SMT). */ - enum idle_type idle = (this_rq->idle && !this_rq->nr_running) ? + enum idle_type idle = !this_rq->nr_running ? SCHED_IDLE : NOT_IDLE; /* Earliest time when we have to call rebalance_domains again */ unsigned long next_balance = jiffies + 60*HZ;