cvs commit: src/sys/i386/i386 pmap.c src/sys/kern subr_witness.c
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