cvs commit: src/sys/alpha/alpha pmap.c src/sys/amd64/amd64 pmap.c src/sys/i386/i386 pmap.c src/sys/ia64/ia64 pmap.c src/sys/powerpc/powerpc pmap.c src/sys/sparc64/sparc64 pmap.c src/sys/vm pmap.h vm_map.c

Alan Cox alc at FreeBSD.org
Thu Jul 3 13:18:03 PDT 2003


alc         2003/07/03 13:18:02 PDT

  FreeBSD src repository

  Modified files:
    sys/alpha/alpha      pmap.c 
    sys/amd64/amd64      pmap.c 
    sys/i386/i386        pmap.c 
    sys/ia64/ia64        pmap.c 
    sys/powerpc/powerpc  pmap.c 
    sys/sparc64/sparc64  pmap.c 
    sys/vm               pmap.h vm_map.c 
  Log:
  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.
  
  Revision  Changes    Path
  1.129     +4 -105    src/sys/alpha/alpha/pmap.c
  1.419     +15 -83    src/sys/amd64/amd64/pmap.c
  1.415     +15 -84    src/sys/i386/i386/pmap.c
  1.114     +4 -106    src/sys/ia64/ia64/pmap.c
  1.59      +5 -3      src/sys/powerpc/powerpc/pmap.c
  1.117     +5 -2      src/sys/sparc64/sparc64/pmap.c
  1.61      +1 -2      src/sys/vm/pmap.h
  1.303     +74 -1     src/sys/vm/vm_map.c


More information about the cvs-all mailing list