From 8f5fecd0290df1bba43f17260534261f6689a39e Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Mon, 5 May 2008 14:27:26 -0400 Subject: LITMUS: disable Linux scheduler optimization This caused LITMUS^RT real-time tasks to be missed, which in turn caused all kinds of inconsistent state. --- kernel/sched.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched.c b/kernel/sched.c index d9e876fea8..a6dbac6282 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3602,11 +3602,13 @@ pick_next_task(struct rq *rq, struct task_struct *prev) * Optimization: we know that if all tasks are in * the fair class we can call that function directly: */ - if (likely(rq->nr_running == rq->cfs.nr_running)) { + /* Don't do that for LITMUS. + if (likely(rq->nr_running == rq->cfs.nr_running)) { p = fair_sched_class.pick_next_task(rq); if (likely(p)) return p; } + */ class = sched_class_highest; for ( ; ; ) { -- cgit v1.2.2