cvs commit: src/sys/alpha/alpha pmap.c src/sys/amd64/amd64 pmap.c src/sys/arm/arm 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 vm_fault.c vm_map.c

Alan Cox alc at FreeBSD.org
Wed Dec 15 11:55:06 PST 2004


alc         2004-12-15 19:55:05 UTC

  FreeBSD src repository

  Modified files:
    sys/alpha/alpha      pmap.c 
    sys/amd64/amd64      pmap.c 
    sys/arm/arm          pmap.c 
    sys/i386/i386        pmap.c 
    sys/ia64/ia64        pmap.c 
    sys/powerpc/powerpc  pmap.c 
    sys/sparc64/sparc64  pmap.c 
    sys/vm               vm_fault.c vm_map.c 
  Log:
  In the common case, pmap_enter_quick() completes without sleeping.
  In such cases, the busying of the page and the unlocking of the
  containing object by vm_map_pmap_enter() and vm_fault_prefault() is
  unnecessary overhead.  To eliminate this overhead, this change
  modifies pmap_enter_quick() so that it expects the object to be locked
  on entry and it assumes the responsibility for busying the page and
  unlocking the object if it must sleep.  Note: alpha, amd64, i386 and
  ia64 are the only implementations optimized by this change; arm,
  powerpc, and sparc64 still conservatively busy the page and unlock the
  object within every pmap_enter_quick() call.
  
  Additionally, this change is the first case where we synchronize
  access to the page's PG_BUSY flag and busy field using the containing
  object's lock rather than the global page queues lock.  (Modifications
  to the page's PG_BUSY flag and busy field have asserted both locks for
  several weeks, enabling an incremental transition.)
  
  Revision  Changes    Path
  1.175     +30 -13    src/sys/alpha/alpha/pmap.c
  1.512     +12 -2     src/sys/amd64/amd64/pmap.c
  1.21      +11 -0     src/sys/arm/arm/pmap.c
  1.519     +12 -2     src/sys/i386/i386/pmap.c
  1.156     +4 -0      src/sys/ia64/ia64/pmap.c
  1.91      +8 -0      src/sys/powerpc/powerpc/pmap.c
  1.142     +8 -0      src/sys/sparc64/sparc64/pmap.c
  1.199     +2 -8      src/sys/vm/vm_fault.c
  1.362     +4 -9      src/sys/vm/vm_map.c


More information about the cvs-all mailing list