Re: Deadlock with option FULL_PREEMPTION

From: Peter Holm <peter_at_holm.cc>
Date: Sun, 27 Feb 2005 10:56:25 +0100
On Tue, Feb 22, 2005 at 03:52:37PM -0500, John Baldwin wrote:
> On Tuesday 08 February 2005 03:14 pm, Peter Holm wrote:
> > 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.
> 
> Can you try doing this but with machdep.cpu_idle_hlt set to off as per my 
> other posting to current_at_ several days ago?
> 

I've been testing with FULL_PREEMPTION (without changing
machdep.cpu_idle_hlt) for a few days now, without seeing the
livelock problem again :-(

- Peter


> -- 
> John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
Received on Sun Feb 27 2005 - 08:56:34 UTC

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