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.
- dynamic linker should pay attention to map share library at
"colour boundary." This ensure cache lines shared between
processes.
Toru Nishimura / ALKYL Technology