Messages in this thread | | | Date | Fri, 9 Nov 2007 09:45:21 +0100 | From | "Dmitry Adamushko" <> | Subject | Re: [BUG]: Crash with CONFIG_FAIR_CGROUP_SCHED=y |
| |
Hi Srivatsa,
> [ ... ] > -- > > current task is not present in its runqueue in case of sched_fair class > tasks. Take care of this fact in rt_mutex_setprio(), > sched_setscheduler() and sched_move_task() routines. > > Signed-off-by : Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com> > > > --- > kernel/sched.c | 45 +++++++++++++++++++++++++-------------------- > 1 files changed, 25 insertions(+), 20 deletions(-) > > Index: current/kernel/sched.c > =================================================================== > --- current.orig/kernel/sched.c > +++ current/kernel/sched.c > @@ -3986,11 +3986,13 @@ void rt_mutex_setprio(struct task_struct > oldprio = p->prio; > on_rq = p->se.on_rq; > running = task_running(rq, p); > - if (on_rq) { > + if (on_rq) > dequeue_task(rq, p, 0); > - if (running) > - p->sched_class->put_prev_task(rq, p); > - } > + /* current task is not kept in its runqueue in case of sched_fair class. > + * Hence we need the 'on_rq?' and 'running?' tests to be separate.
Humm... the 'current' is not kept within the tree but current->se.on_rq is supposed to be '1' , so the old code looks ok to me (at least for the 'leaf' elements).
Maybe you were able to get more useful oops on your site?
> -- > Regards, > vatsa >
-- Best regards, Dmitry Adamushko - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |