Re: Panic on -CURRENT after LDT changes

From: Joe Marcus Clarke <marcus_at_marcuscom.com>
Date: Mon, 28 May 2007 19:46:30 -0400
On Tue, 2007-05-29 at 00:53 +0200, Attilio Rao wrote:
> 2007/5/28, Attilio Rao <attilio_at_freebsd.org>:
> > Tor Egge wrote:
> > >
> > > Finally, I found that i386_ldt_grow() called smp_rendezvous() without
> > > temporarily unlocking dt_lock.  That caused a deadlock.  Adding a temporary
> > > unlock of dt_lock seems to solve the problem for me.
> >
> > Effectively, there is the need to release the dt_lock before to call
> > smp_rendezvous() beacause other threads running on other CPUs will
> > contest on this lock and it will cause a deadlock (since their
> > curthreads don't hold the lock).
> > I think that mantaining the current locking requirements for
> > i386_ldt_grow() is still good, since, for how it is used, this is the
> > lighter approach. I will add release/unrelease around smp_rendezvous() too.
> 
> Tor,
> I've updated the patch. Can you please redownload it and test/review:
> http://users.gufi.org/~rookie/works/patches/schedlock/ldt2.diff

I can confirm that with this patch, an SMP i386 Tinderbox machine of
mine that was seeing Tor's "lock held too long" panic survives much
longer.  No crashes after a few port builds.

Joe

-- 
PGP Key : http://www.marcuscom.com/pgp.asc

Received on Mon May 28 2007 - 21:46:46 UTC

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