pmap_enter vs pmap_qenter
dillon at apollo.backplane.com
Tue Jan 11 17:03:33 PST 2011
:If I have a vm_page_t array, 'mp' for this exercise, should:
: pmap_qenter(addr, mp, npages);
:be equivalent to
: for (i = 0; i < npages; i += PAGE_SIZE)
: pmap_enter(&kernel_pmap, addr + i, mp[i / PAGE_SIZE], VM_PROT_ALL, 1);
:if all of the pages in the array have had m->valid set to
:VM_PAGE_BITS_ALL and vm_page_wire() called on them?
Well, pmap_kenter() and pmap_qenter() are designed for the kernel_map
only, whereas pmap_enter() is designed for user pmaps but happens to
also work on the kernel_map.
p.s. on that example my assumption is 'npages' is meant to be in bytes
and not pages.
<dillon at backplane.com>
More information about the Kernel