panic: spin lock held too long (reasonable load)
Ian FREISLICH
if at hetzner.co.za
Wed Jun 9 15:04:53 GMT 2004
> On Wednesday 09 June 2004 09:25 am, Ian FREISLICH wrote:
> > Hi
> >
> > I got this about an hour ago, maybe 10 minutes into a 'make world
> > -j8' on my SMP system. I'll reproduce the panic and drop into the
> > debugger if possible if someone is willing to tell me what information
> > appart from this backtrace will be helpful.
>
> Unfortunately this is a known deadlock that can happen with swapping that
> there isn't an easy fix for. If you want a quick hack, try commenting out
> the 'wakeup(&proc0)' line in setrunnable(). It might take a bit longer for
> the kernel to swap processes back in but should avoid the deadlock.
You mean like this?
diff -u -d -r1.249 kern_synch.c
--- kern_synch.c 7 Jun 2004 09:35:00 -0000 1.249
+++ kern_synch.c 9 Jun 2004 15:03:09 -0000
@@ -402,7 +402,14 @@
if ((p->p_sflag & PS_INMEM) == 0) {
if ((p->p_sflag & PS_SWAPPINGIN) == 0) {
p->p_sflag |= PS_SWAPINREQ;
- wakeup(&proc0);
+ /*
+ * XXX Nasty, Tricksy hack!!!!
+ * Perhaps avoid a deadlock at the expense of swap
+ * performance.
+ */
+ /*
+ * wakeup(&proc0);
+ */
}
} else
sched_wakeup(td);
Ian
--
Ian Freislich
More information about the freebsd-current
mailing list