Is pmap_kextract() allowed to fault?

Marcel Moolenaar marcel at xcllnt.net
Sun Apr 20 22:53:34 PDT 2003


Gang,

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
you know...

Thanks,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net


More information about the freebsd-hackers mailing list