[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Hang when starting sshd on MP machine
> On Sat, Mar 22, 2008 at 03:40:55PM -0400, Chris Ross wrote:
> > On Mar 22, 2008, at 10:25, Andrew Doran wrote:
> > >It's a deadlock involving kernel_lock. Haven't figured out what the
> > >problem
> > >is yet, but I've put kernel_lock back around the kqueue stuff which
> > >should
> > >sort it for the time being.
> > Putting kernel_lock back avoids the problem, helps figure out where
> > the problem is, or both?
> It avoids the problem.
> > If the former, then is there any help those of us only testing and not yet
> > needing any term of multiuser functionality could do to provide data to
> > help track it down?
> I think it's case of trying to understand where the dealock is coming from.
> It looks like a lock order reversal. I think what is happening is that one
> thread is acquiring:
> kernel_lock -> kq_lock
> .. and another is acquiring:
> kq_lock -> kernel_lock.
> They both deadlock waiting for each other's lock. Given a quick look I
> haven't been able to find that.
while kqueue_scan drops kq_lock to call f_event,
'kn' can be modified by eg. knote_activate.
it can cause the list corruption and make kqueue_scan loops
indefinitely with kq_lock held.
Main Index |
Thread Index |