From: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
torvalds@linux-foundation.org,
Andrew Morton <akpm@linux-foundation.org>,
Andy Whitcroft <apw@shadowen.org>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Srivatsa Vaddagiri <vatsa@in.ibm.com>,
Mike Galbraith <efault@gmx.de>,
Dhaval Giani <dhaval@linux.vnet.ibm.com>
Subject: Re: [BUG] 2.6.23-git8 kernel oops at __rb_rotate_left+0x7/0x70
Date: Wed, 17 Oct 2007 20:30:56 +0530 [thread overview]
Message-ID: <20071017150056.GA28135@linux.vnet.ibm.com> (raw)
In-Reply-To: <20071017142140.GA8634@elte.hu>
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).
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.
--
Child task may be added on a different cpu that the one on which parent
is running. In which case, task_new_fair() should check whether the new
born task's parent entity should be added as well on the cfs_rq.
Patch below fixes the problem in task_new_fair.
Signed-off-by : Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
---
kernel/sched.c | 2 +-
kernel/sched_fair.c | 6 +-----
2 files changed, 2 insertions(+), 6 deletions(-)
Index: current/kernel/sched.c
===================================================================
--- current.orig/kernel/sched.c
+++ current/kernel/sched.c
@@ -1712,7 +1712,7 @@ void fastcall wake_up_new_task(struct ta
p->prio = effective_prio(p);
- if (!p->sched_class->task_new || !current->se.on_rq || !rq->cfs.curr) {
+ if (!p->sched_class->task_new || !current->se.on_rq) {
activate_task(rq, p, 0);
} else {
/*
Index: current/kernel/sched_fair.c
===================================================================
--- current.orig/kernel/sched_fair.c
+++ current/kernel/sched_fair.c
@@ -1031,12 +1031,8 @@ static void task_new_fair(struct rq *rq,
swap(curr->vruntime, se->vruntime);
}
- update_stats_enqueue(cfs_rq, se);
- check_spread(cfs_rq, se);
- check_spread(cfs_rq, curr);
- __enqueue_entity(cfs_rq, se);
- account_entity_enqueue(cfs_rq, se);
se->peer_preempt = 0;
+ enqueue_task_fair(rq, p, 0);
resched_task(rq->curr);
}
--
Regards,
vatsa
next prev parent reply other threads:[~2007-10-17 14:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-16 5:25 [BUG] 2.6.23-git8 kernel oops at __rb_rotate_left+0x7/0x70 Kamalesh Babulal
2007-10-16 9:10 ` Ingo Molnar
2007-10-16 9:46 ` Ingo Molnar
2007-10-16 18:00 ` Andy Whitcroft
2007-10-16 18:42 ` Srivatsa Vaddagiri
2007-10-17 9:07 ` Andy Whitcroft
2007-10-16 10:03 ` Andy Whitcroft
2007-10-17 14:21 ` Ingo Molnar
2007-10-17 14:43 ` Andy Whitcroft
2007-10-17 15:00 ` Srivatsa Vaddagiri [this message]
2007-10-17 14:52 ` Ingo Molnar
2007-10-17 15:29 ` Andy Whitcroft
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071017150056.GA28135@linux.vnet.ibm.com \
--to=vatsa@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=apw@shadowen.org \
--cc=dhaval@linux.vnet.ibm.com \
--cc=dmitry.adamushko@gmail.com \
--cc=efault@gmx.de \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@linux-foundation.org \
--cc=vatsa@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.