More PI issues with -rt

From: Dinakar Guniguntala
Date: Thu Nov 24 2005 - 14:51:11 EST


Hi,

I found that PI boosted SCHED_OTHER tasks behave like they have
SCHED_FIFO policy, while PI boosted SCHED_RR tasks continue to
behave like they have SCHED_RR policy. This didn't seem right

Does something like the following patch make sense?

-Dinakar


Index: linux-2.6.14/kernel/sched.c
===================================================================
--- linux-2.6.14.orig/kernel/sched.c 2005-11-25 01:24:06.000000000 +0530
+++ linux-2.6.14/kernel/sched.c 2005-11-25 01:24:26.000000000 +0530
@@ -2986,8 +2986,9 @@
* On PREEMPT_RT, boosted tasks will also get into this
* branch and wont get their timeslice decreased until
* they have done their work.
+ * Boosted SCHED_OTHER tasks round-robin as well
*/
- if ((p->policy == SCHED_RR) && !--p->time_slice) {
+ if ((p->policy != SCHED_FIFO) && !--p->time_slice) {
p->time_slice = task_timeslice(p);
p->first_time_slice = 0;
set_tsk_need_resched(p);