cvs commit: src/sys/kern kern_subr.c uipc_jumbo.c uipc_syscalls.c vfs_bio.c src/sys/sparc64/sparc64 pmap.c src/sys/vm vm_contig.c vm_glue.c vm_object.c vm_page.c vm_pageout.c

Alan Cox alc at FreeBSD.org
Wed Nov 3 12:17:32 PST 2004


alc         2004-11-03 20:17:32 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_subr.c uipc_jumbo.c uipc_syscalls.c 
                         vfs_bio.c 
    sys/sparc64/sparc64  pmap.c 
    sys/vm               vm_contig.c vm_glue.c vm_object.c 
                         vm_page.c vm_pageout.c 
  Log:
  The synchronization provided by vm object locking has eliminated the
  need for most calls to vm_page_busy().  Specifically, most calls to
  vm_page_busy() occur immediately prior to a call to vm_page_remove().
  In such cases, the containing vm object is locked across both calls.
  Consequently, the setting of the vm page's PG_BUSY flag is not even
  visible to other threads that are following the synchronization
  protocol.
  
  This change (1) eliminates the calls to vm_page_busy() that
  immediately precede a call to vm_page_remove() or functions, such as
  vm_page_free() and vm_page_rename(), that call it and (2) relaxes the
  requirement in vm_page_remove() that the vm page's PG_BUSY flag is
  set.  Now, the vm page's PG_BUSY flag is set only when the vm object
  lock is released while the vm page is still in transition.  Typically,
  this is when it is undergoing I/O.
  
  Revision  Changes    Path
  1.90      +0 -2      src/sys/kern/kern_subr.c
  1.11      +0 -1      src/sys/kern/uipc_jumbo.c
  1.205     +0 -1      src/sys/kern/uipc_syscalls.c
  1.464     +0 -2      src/sys/kern/vfs_bio.c
  1.140     +0 -1      src/sys/sparc64/sparc64/pmap.c
  1.40      +0 -2      src/sys/vm/vm_contig.c
  1.206     +0 -2      src/sys/vm/vm_glue.c
  1.333     +0 -3      src/sys/vm/vm_object.c
  1.298     +5 -14     src/sys/vm/vm_page.c
  1.265     +0 -2      src/sys/vm/vm_pageout.c


More information about the cvs-all mailing list