Date: Mon, 25 Nov 1996 14:07:49 -0500 (EST) From: John Dyson <dyson@dyson.iquest.net> To: terry@lambert.org (Terry Lambert) Cc: peter@spinner.dialix.com, 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: <199611251907.OAA02289@dyson.iquest.net> In-Reply-To: <199611251835.LAA22875@phaeton.artisoft.com> from "Terry Lambert" at Nov 25, 96 11:35:12 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > Why do you need to force all CPU's to do an invltlb()? > One common case is for when a page is freed, that the other processors will need to invalidate the mappings for it. The VM system is not perfect in that it will free pages that are about to be used (once in a long while.) The current SMP system sort-of works without the global invtlb, but when it starts paging -- it probably starts sig-11'ing (my guess.) <Cant wait to get my 2nd processor, but the SMP guys will probably have all of the bugs worked out, and it won't be fun anymore :-)>. So, the invtlb is used to synchronize the TLB on all of the processors with reality. For now, page-by-page invalidates are too complex. Specifically, the invlpg operation works on a VA basis not a PA basis. We would have to go through contortions to find out the VA's that the page is mapped to on the other processor -- for very little gain... Invlpg is only applicable to certain circumstances anyway. Your question implies confusion with winvlb (cache flush) or somesuch? John
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611251907.OAA02289>