the patch below fixes a fork() bug introduced by the new scheduler. If the
parent process schedules away and gets rebalanced to another CPU then
wake_up_forked_process() does runqueue manipulation incorrectly.
the crash was first reported by Robert Love, it happened with the
preemption patches applied. Later the crash was reproduced on the 2.4 +
O(1) kernel as well, using Cerberus.
Ingo
--- linux/kernel/sched.c.orig Fri Jan 25 10:44:18 2002
+++ linux/kernel/sched.c Fri Jan 25 12:06:36 2002
@@ -275,6 +293,7 @@
p->prio = effective_prio(p);
}
spin_lock_irq(&rq->lock);
+ p->cpu = smp_processor_id();
activate_task(p, rq);
spin_unlock_irq(&rq->lock);
}
-
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/
This archive was generated by hypermail 2b29 : Thu Jan 31 2002 - 21:00:31 EST