Re: Deadlock with option FULL_PREEMPTION

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 8 Feb 2005 14:48:43 -0500
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
Received on Tue Feb 08 2005 - 18:48:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:27 UTC