Masao Uebayashi <uebayasi%tombi.co.jp@localhost> 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. - dynamic linker should pay attention to map share library at "colour boundary." This ensure cache lines shared between processes. Toru Nishimura / ALKYL Technology