Re: [BUG] 2.6.23-git8 kernel oops at __rb_rotate_left+0x7/0x70

Ingo Molnar
2007-10-17T14:52:52Z

* Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com> wrote:

> On Wed, Oct 17, 2007 at 04:21:40PM +0200, Ingo Molnar wrote:
> > * Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote:
> >
> > > While running kernbench with the 2.6.23-git8 following oops is
> > > produced
> >
> > Dmitry found something that might explain the crash: could you check
> > whether the patch below fixes it?
>
> > this should fix the put_prev_task crashes that were reported,
> > Dmitry Adamushko noticed that it's not valid to call into
> > task_new_fair() if this_cpu != task_cpu(p).
>
> I don't see a fundamental reason why it would be invalid to call
> task_new_fair() when this_cpu != task_cpu(p). Besides, calling
> activate_task->enqueue_task->enqueue_task_fair() on a new born task
> (as is being done in the patch you have sent) is slightly buggy in the
> sense that its p->se.vruntime is not properly calculated (because we
> set wakeup argument as 0).

yes - i pointed this out in a separate mail.

> We (myself, Kamalesh and Dhaval) have tested the patch below, w/o
> being able to recreate the problem. The patch allows for
> task_new_fair() to be called even for the case when child is being
> added to another cpu's runqueue.

yes, and your fix is the better one, it goes into the next batch of
fixes.

Ingo