Is pmap_kextract() allowed to fault?
marcel at xcllnt.net
Sun Apr 20 22:53:34 PDT 2003
On ia64 pmap_kextract() uses the tpa instruction which given a
virtual address returns the physical address based on the
translation registers and cache (ie TLB). This can fault when
there's currently no mapping for the virtual address.
Since all other architectures have a non-faulting implementation
(AFAICT), I'm a bit worried that we might get into trouble on
ia64. I couldn't find anything about pmap_kextract(), so maybe
anybody can enlighten me:
1. Is pmap_kextract() allowed to fault?
2. Is pmap_kextract() used often enough that using the cpu's TLB
is a possible performance speedup even if there are costly faults
that can sometimes happen?
Note: an implementation not based on the tpa instruction would look
pretty much the same as the current sparc64 implementation. Just so
Marcel Moolenaar USPA: A-39004 marcel at xcllnt.net
More information about the freebsd-hackers