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

Ingo Molnar
2007-10-17T14:22:27Z

* 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?

Ingo

---------------------->
Subject: sched: fix new task startup crash
From: Ingo Molnar <mingo@elte.hu>

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).

Reported-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Reported-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
kernel/sched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux/kernel/sched.c
===================================================================
--- linux.orig/kernel/sched.c
+++ linux/kernel/sched.c
@@ -1712,7 +1712,8 @@ 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 || smp_processor_id() != task_cpu(p) ||
+ !current->se.on_rq || !rq->cfs.curr) {
activate_task(rq, p, 0);
} else {
/*