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

Alan Cox alc at cs.rice.edu
Wed Aug 4 14:40:59 PDT 2004


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.

Alan


More information about the cvs-all mailing list