cvs commit: src/sys/amd64/amd64 pmap.c src/sys/amd64/include pmap.h src/sys/i386/i386 pmap.c src/sys/i386/include pmap.h

Alan Cox alc at FreeBSD.org
Sun Oct 10 12:08:00 PDT 2004


alc         2004-10-10 19:08:00 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_5)
    sys/amd64/amd64      pmap.c 
    sys/amd64/include    pmap.h 
    sys/i386/i386        pmap.c 
    sys/i386/include     pmap.h 
  Log:
  MFC multiple pmap changes
  
  amd64 and i386
   - Remove unnecessary checks for curthread == NULL and pmap == NULL.
   - Release the page queues lock earlier in pmap_protect() and pmap_remove()
     in order to reduce contention.
   - Remove an outdated assertion from _pmap_allocpte().
   - Simplify the reference counting of page table pages.  Specifically, use
     the page table page's wired count rather than its hold count to contain
     the reference count.
   - Prevent the unexpected deallocation of a page table page while
     performing pmap_copy().
   - Eliminate the unnecessary masking of the page offset bits from the
     physical address that is stored in the vm_page.
   - Undo revision 1.251.  This change was a performance pessimizing work-
     around that is no longer required.  Now, if the preexisting PTE is
     invalid, pmap_enter() does not call pmap_invalidate_page() to update
     the TLB(s).
   - Make pte_load_store() an atomic operation in all cases, not just i386
     PAE.
   - Restructure pmap_enter() to prevent the loss of a page modified (PG_M)
     bit in a race between processors.  (This restructuring assumes the newly
     atomic pte_load_store() for correct operation.)
  
  amd64 only
   - It is now an error to call pmap_unuse_pt without the paddr of the pde
     that contained the pte.
   - Remove an unused declaration.
  
  i386 only
   - Modify pmap_pte() to support its use on non-current, non-kernel pmaps
     without holding Giant.
  
  Approved by: re (scottl)
  
  Revision   Changes    Path
  1.491.2.4  +88 -90    src/sys/amd64/amd64/pmap.c
  1.122.2.2  +15 -5     src/sys/amd64/include/pmap.h
  1.494.2.6  +99 -81    src/sys/i386/i386/pmap.c
  1.112.2.2  +17 -5     src/sys/i386/include/pmap.h


More information about the cvs-src mailing list