On Wed, Jan 05, 2011 at 01:29:02AM +0900, Toru Nishimura wrote: > Masao Uebayashi <uebay...@tombi.co.jp> responds as; > > >>The entire effect is to eliminate the necessity of VIPT fixup efforts in > >>port-specific pmap.c and ends up with improving the cache effeciency > >>in large degree. This is _the intent_ behind VIPT design. So far OS > >>virtual memory strategy paid little attention to make VIPT cache work > >>correctly. > > > >It'd be nice if we can really eliminate VIPT fixup *code* in pmaps. > > > >And I *think* this is possible if we don't remap pages using > >pmap_kenter_pa(). > > The VIPT rule is simple; just make sure to match colour between > VPN and PFN. It's the mandatory programming practice. This rule > is clearly documented in _many_ CPU architecture documents with > VIPT cache. > > - mmap(2) must refuse to map mixed colour VA.
Hmmm. I've thought that the page colouring constraint is *should*, not *must*. If it is really a must, yes, it's only the problem that how to achieve that in UVM. And UBC and other remapping methods (if exists) should make sure the rule. > - dynamic linker should pay attention to map share library at > "colour boundary." This ensure cache lines shared between > processes. > > Toru Nishimura / ALKYL Technology