From: Andrew Theurer This change: http://linux.bkbits.net:8080/linux-2.5/diffs/kernel/sched.c@1.202 does not seem to make sense: #define CAN_MIGRATE_TASK(p,rq,this_cpu) \ ((!idle || (jiffies - (p)->last_run > cache_decay_ticks)) && \ !task_running(rq, p) && \ cpu_isset(this_cpu, (p)->cpus_allowed)) It should be just the opposite; an idle cpu should be able to have a more aggressive steal, and a busy cpu should not. kernel/sched.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sched.c~sched-CAN_MIGRATE_TASK-fix kernel/sched.c --- 25/kernel/sched.c~sched-CAN_MIGRATE_TASK-fix 2003-08-28 09:07:36.000000000 -0700 +++ 25-akpm/kernel/sched.c 2003-08-28 09:07:36.000000000 -0700 @@ -1063,7 +1063,7 @@ skip_queue: */ #define CAN_MIGRATE_TASK(p,rq,this_cpu) \ - ((!idle || (jiffies - (p)->last_run > cache_decay_ticks)) && \ + ((idle || (jiffies - (p)->last_run > cache_decay_ticks)) && \ !task_running(rq, p) && \ cpu_isset(this_cpu, (p)->cpus_allowed)) _