Skip site navigation (1)Skip section navigation (2)
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>