Alan,
Anton Blanchard reported a lock vs. interrupt-off ordering bug in
migration_thread.  The bug is already fixed in 2.5.  A patch is attached
to fix O(1) in your tree.
See the comments above double_rq_lock and double_rq_unlock (which,
sadly, I wrote)!  Without this patch there is a possibility to hang,
which Anton observed.
Patch is against 2.4.19-pre8-ac1, please apply.
	Robert Love
--=-XsQR5K08oc8aFbvOy3e9
Content-Disposition: attachment; filename=sched-irq-fix-rml-2.4.19-pre8-ac1-1.patch
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-patch; name=sched-irq-fix-rml-2.4.19-pre8-ac1-1.patch;
	charset=ISO-8859-1
diff -urN linux-2.4.19-pre8-ac1/kernel/sched.c linux/kernel/sched.c
--- linux-2.4.19-pre8-ac1/kernel/sched.c	Wed May  8 12:03:14 2002
+++ linux/kernel/sched.c	Sat May 11 09:29:55 2002
@@ -1640,8 +1640,8 @@
 		local_irq_save(flags);
 		double_rq_lock(rq_src, rq_dest);
 		if (p->cpu !=3D cpu_src) {
-			local_irq_restore(flags);
 			double_rq_unlock(rq_src, rq_dest);
+			local_irq_restore(flags);
 			goto repeat;
 		}
 		if (rq_src =3D=3D rq) {
@@ -1651,8 +1651,8 @@
 				activate_task(p, rq_dest);
 			}
 		}
-		local_irq_restore(flags);
 		double_rq_unlock(rq_src, rq_dest);
+		local_irq_restore(flags);
=20
 		up(&req->sem);
 	}
--=-XsQR5K08oc8aFbvOy3e9--
-
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/