Deadlock with option FULL_PREEMPTION
John Baldwin
jhb at FreeBSD.org
Tue Feb 8 11:48:12 PST 2005
On Tuesday 08 February 2005 02:08 pm, Peter Holm wrote:
> On Tue, Feb 08, 2005 at 01:17:40PM -0500, John Baldwin wrote:
> > On Sunday 06 February 2005 08:41 am, Peter Holm wrote:
> > > With GENERIC HEAD from Feb 5 09:19 UTC + FULL_PREEMPTION +
> > > mpsafe_vfs = 1 I ran into what appears to be the same deadlock
> > > twice. This is the first one:
> > > http://www.holm.cc/stress/log/cons114.html
> >
> > What is the deadlock exactly?
>
> top froze, console login froze after giving login name, but I
> could ping the box.
So it could be livelock rather than deadlock if interrupt processing still
works (ping).
>
> > It looks like lots of threads banging on fork()
> > and that they are all waiting on an exclusive lock of allproc_lock while
> > holding a shared lock of proctree_lock (except for the 1 thread currently
> > doing a fork that is on a run queue because it was preempted by IRQ 0
> > which kicked off softclock). Can you get 'ps' output?
>
> Yes:
Well, kmail butchered this in my reply so I won't quote any of it, but it does
seem that the process everyone is waiting on is runnable. I'm not sure if
there's anything you can do to recover from the livelock, but the livelock is
holding up all the forks so you can't get a login process to fork a shell,
etc. (At least not quickly apparently).
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list