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