Date: Tue, 29 May 2007 00:53:30 +0200 From: "Attilio Rao" <attilio@freebsd.org> To: "Tor Egge" <Tor.Egge@cvsup.no.freebsd.org> Cc: jroberson@chesapeake.net, current@freebsd.org Subject: Re: Panic on -CURRENT after LDT changes Message-ID: <3bbf2fe10705281553n49ed5408qde560f53931b7d71@mail.gmail.com> In-Reply-To: <465B4450.90800@FreeBSD.org> References: <1180138048.94117.17.camel@shumai.marcuscom.com> <465780A3.8040603@FreeBSD.org> <1180140483.94117.24.camel@shumai.marcuscom.com> <20070528.162023.41711345.Tor.Egge@cvsup.no.freebsd.org> <465B4450.90800@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
2007/5/28, Attilio Rao <attilio@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 Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3bbf2fe10705281553n49ed5408qde560f53931b7d71>