pmap_enter vs pmap_qenter

Matthew Dillon dillon at
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?
:-- vs

    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.

					Matthew Dillon 
					<dillon at>

More information about the Kernel mailing list