Deadlock with option FULL_PREEMPTION
Peter Holm
peter at holm.cc
Tue Feb 8 12:14:41 PST 2005
On Tue, Feb 08, 2005 at 02:48:43PM -0500, John Baldwin wrote:
> 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).
>
Oh, recovery is not an issue. I'm stress testing, but this
problem does seem to prevent finding other kernel problems
with FULL_PREEMPTION. I'll just go back to testing without this
option. Thanx for looking at this.
> --
> John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve" = http://www.FreeBSD.org
--
Peter Holm
More information about the freebsd-current
mailing list