CAN_MIGRATE seems screwed up

From: Andrew Theurer
Date: Wed Aug 27 2003 - 10:08:59 EST


OK, not sure how long this has been this way, but:

#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))

Is broken. Having !idle make no sense. It should be just the opposite; an
idle cpu should be able to have a more aggressive steal, and a busy cpu
should not.

diff -Naurp linux-2.6.0-test4/kernel/sched.c
linux-2.6.0-test4-can_migrate/kernel/sched.c
--- linux-2.6.0-test4/kernel/sched.c Fri Aug 22 18:58:43 2003
+++ linux-2.6.0-test4-can_migrate/kernel/sched.c Wed Aug 27 11:32:46 2003
@@ -1064,7 +1064,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))


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/