Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Nov 1996 10:58:00 -0800
From:      David Greenman <dg@Root.COM>
To:        Terry Lambert <terry@lambert.org>
Cc:        peter@spinner.dialix.com (Peter Wemm), toor@dyson.iquest.net, phk@critter.tfs.com, freebsd-smp@freebsd.org
Subject:   Re: cvs commit: sys/i386/i386 locore.s swtch.s sys/i386/include pmap.h 
Message-ID:  <199611251858.KAA06981@root.com>
In-Reply-To: Your message of "Mon, 25 Nov 1996 11:35:12 MST." <199611251835.LAA22875@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>> OBTW, easy question.  Is it safe to do a:
>> 	movl	%cr3, %eax
>> 	movl	%eax, %cr3
>> .. from a non-spl-maskable interrupt handler?
>> 
>> I'm thinking in terms of a lightning quick interprocessor interrupt to
>> force all cpu's to do an invltlb().
>> 
>> So far as I can see from a quick scan of the code, the only real loads of
>> %cr3 are during cpu_switch(), initialisation, and tlb flushes.  cpu_switch()
>> does it from inside cli/sti so it's safe, init code is irrelevant at this
>> point, and I think the tlb flush is implicitly reentrant since it's
>> not changing the register.
>> 
>> Have I missed something?
>
>Why do you need to force all CPU's to do an invltlb()?
>
>Is this to handle bus master DMA target memory?
>
>Or is this for IPC?

   None of the above. It's needed to update/invalidate mappings during paging.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611251858.KAA06981>