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>