]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Background: pmap_object_init_pt() premaps the pages of a object in
authoralc <alc@FreeBSD.org>
Thu, 3 Jul 2003 20:18:02 +0000 (20:18 +0000)
committeralc <alc@FreeBSD.org>
Thu, 3 Jul 2003 20:18:02 +0000 (20:18 +0000)
commit0699f7e17ff39a213cf2dd24b601d9d8e73271b9
treed866e6a21d7e58ecc726f0d4972a8006256cf55d
parent6f4ee681fdadfbb7008a43761f43ef8fe7d4f5c1
Background: pmap_object_init_pt() premaps the pages of a object in
order to avoid the overhead of later page faults.  In general, it
implements two cases: one for vnode-backed objects and one for
device-backed objects.  Only the device-backed case is really
machine-dependent, belonging in the pmap.

This commit moves the vnode-backed case into the (relatively) new
function vm_map_pmap_enter().  On amd64 and i386, this commit only
amounts to code rearrangement.  On alpha and ia64, the new machine
independent (MI) implementation of the vnode case is smaller and more
efficient than their pmap-based implementations.  (The MI
implementation takes advantage of the fact that objects in -CURRENT
are ordered collections of pages.)  On sparc64, pmap_object_init_pt()
hadn't (yet) been implemented.
sys/alpha/alpha/pmap.c
sys/amd64/amd64/pmap.c
sys/i386/i386/pmap.c
sys/ia64/ia64/pmap.c
sys/powerpc/aim/mmu_oea.c
sys/powerpc/powerpc/mmu_oea.c
sys/powerpc/powerpc/pmap.c
sys/sparc64/sparc64/pmap.c
sys/vm/pmap.h
sys/vm/vm_map.c