Subject: How to allocate kernel virtual memory with particular color?
To: None <tech-kern@netbsd.org>
From: Jeff Smith <jeffs@geocast.com>
List: tech-kern
Date: 07/16/2000 21:22:58
First the problem. I'm trying to update the mips vmapbuf() to
allocate the kernel mapping with the same color as the user
mapping to avoid virtual cache aliases. The mips pmap
code handles an alias by changing the mapping to uncached.
The particular hardware I'm working on has "issues" with
much of uncached memory use, so the software must avoid
this.
The code calls uvm_km_valloc_wait() and then pmap_enter()s
the physical pages into the kernel mapping.
I've written code to overallocate the kernel virtual then
do the alignment, and added a uvm_kv_valloc_hint_wait()
call which passes the hint to uvm_map()/pmap_prefer().
Both ways avoid the alias, but what's the best way to do
the remapping?
jeffs