sched rsdl fix for 0.28

From: Con Kolivas
Date: Sat Mar 10 2007 - 18:39:25 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/