Here's a big bugfix for sched rsdl 0.28

---
 kernel/sched.c |    7 +++++++
 1 file changed, 7 insertions(+)

Index: linux-2.6.21-rc3-mm2/kernel/sched.c
===================================================================
--- linux-2.6.21-rc3-mm2.orig/kernel/sched.c    2007-03-11 11:04:38.000000000 
+1100
+++ linux-2.6.21-rc3-mm2/kernel/sched.c 2007-03-11 11:05:46.000000000 +1100
@@ -3328,6 +3328,13 @@ static inline void rotate_runqueue_prior
        int new_prio_level, remaining_quota = rq_quota(rq, rq->prio_level);
        struct prio_array *array = rq->active;
 
+       /*
+        * Make sure we don't have tasks still on the active array that
+        * haven't run due to not preempting (merging or smp balancing)
+        */
+       if (find_next_bit(rq->dyn_bitmap, MAX_PRIO, MAX_RT_PRIO) <
+               rq->prio_level)
+                       return;
        if (rq->prio_level > MAX_PRIO - 2) {
                /* Major rotation required */
                struct prio_array *new_queue = rq->expired;

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

Reply via email to