[PATCH] 2.6.3 Posix scheduling violation for !SCHED_OTHER

From: Joe Korty
Date: Tue Mar 23 2004 - 18:36:59 EST


Andrew,
The following fixes a problem where a SCHED_FIFO task would on occasion
be moved to the end of its runqueue when returned to from a preemption.
Cause was do to some SCHED_OTHER code in schedule() which was being
run for tasks of every policy.

Regards,
Joe


--- 2.6.3/kernel/sched.c.orig 2004-02-17 22:59:10.000000000 -0500
+++ 2.6.3/kernel/sched.c 2004-03-23 18:34:19.000000000 -0500
@@ -1677,7 +1677,7 @@
queue = array->queue + idx;
next = list_entry(queue->next, task_t, run_list);

- if (next->activated > 0) {
+ if (!rt_task(next) && next->activated > 0) {
unsigned long long delta = now - next->timestamp;

if (next->activated == 1)
-
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/