cvs commit: src/sys/i386/i386 pmap.c src/sys/kern subr_witness.c

John Baldwin jhb at FreeBSD.org
Thu Aug 5 15:01:10 PDT 2004


On Wednesday 04 August 2004 05:40 pm, Alan Cox wrote:
> On Wed, Aug 04, 2004 at 05:32:36PM -0400, Brian Fundakowski Feldman wrote:
> > On Wed, Aug 04, 2004 at 04:34:03PM -0400, John Baldwin wrote:
> > > On Wednesday 04 August 2004 04:31 pm, John Baldwin wrote:
> > > > jhb         2004-08-04 20:31:19 UTC
> > > >
> > > >   FreeBSD src repository
> > > >
> > > >   Modified files:
> > > >     sys/i386/i386        pmap.c
> > > >     sys/kern             subr_witness.c
> > > >   Log:
> > > >   Remove a potential deadlock on i386 SMP by changing the lazypmap
> > > > ipi and spin-wait code to use the same spin mutex (smp_tlb_mtx) as
> > > > the TLB ipi and spin-wait code snippets so that you can't get into
> > > > the situation of one CPU doing a TLB shootdown to another CPU that is
> > > > doing a lazy pmap shootdown each of which are waiting on each other. 
> > > > With this change, only one of the CPUs would do an IPI and spin-wait
> > > > at a time.
> > >
> > > Both this patch and the previous I have tested locally and also sent
> > > out to current@ for testing.  However, I received zero feedback (not
> > > even useless feedback), so they may theoretically be risky.
> >
> > "No feedback is good feedback" -- those changes have caused no problems
> > for me during non-PREEMPTION-only testing on my dual Athlon.
>
> Peter's recent changes to where and when we call pmap_release() signal
> the intention to eliminate this code.

I'm not sure he can completely remove the IPI, just reduce the the likelihood 
of having to do so, but perhaps I'm not remembering correctly.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the cvs-all mailing list