Matt Thomas modified UVM colour matching scheme;
Modified Files: src/sys/uvm: uvm_extern.h uvm_fault.c uvm_km.c uvm_page.cLog Message: Add better color matching selecting free pages. KM pages will now allocated so that VA and PA have the same color. On a page fault, choose a physical page that has the same color as the virtual address.
This change is a big forward-reap to have VIPT-safe NetBSD VM for R4000 and modern ARM. Combined with matched KVA selection against UVA, found in vm_machdep.c::vmapbuf(), there remains little ocasion where VM chooses mistakenly wrong colour combination to bind VPN and PFN. 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. Toru Nishimura / ALKYL Technology
