Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jun 2010 19:54:19 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/vm vm_page.c vm_pageout.c
Message-ID:  <201006141954.o5EJsV6b068789@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
alc         2010-06-14 19:54:19 UTC

  FreeBSD src repository

  Modified files:
    sys/vm               vm_page.c vm_pageout.c 
  Log:
  SVN rev 209173 on 2010-06-14 19:54:19Z by alc
  
  Eliminate checks for a page having a NULL object in vm_pageout_scan()
  and vm_pageout_page_stats().  These checks were recently introduced by
  the first page locking commit, r207410, but they are not needed.  At
  the same time, eliminate some redundant accesses to the page's object
  field.  (These accesses should have neen eliminated by r207410.)
  
  Make the assertion in vm_page_flag_set() stricter.  Specifically, only
  managed pages should have PG_WRITEABLE set.
  
  Add a comment documenting an assertion to vm_page_flag_clear().
  
  It has long been the case that fictitious pages have their wire count
  permanently set to one.  Add comments to vm_page_wire() and
  vm_page_unwire() documenting this.  Add assertions to these functions
  as well.
  
  Update the comment describing vm_page_unwire().  Much of the old
  comment had little to do with vm_page_unwire(), but a lot to do with
  _vm_page_deactivate().  Move relevant parts of the old comment to
  _vm_page_deactivate().
  
  Only pages that belong to an object can be paged out.  Therefore, it
  is pointless for vm_page_unwire() to acquire the page queues lock and
  enqueue such pages in one of the paging queues.  Generally speaking,
  such pages are immediately freed after the call to vm_page_unwire().
  Previously, it was the call to vm_page_free() that reacquired the page
  queues lock and removed these pages from the paging queues.  Now, we
  will never acquire the page queues lock for this case.  (It is also
  worth noting that since both vm_page_unwire() and vm_page_free()
  occurred with the page locked, the page daemon never saw the page with
  its object field set to NULL.)
  
  Change the panic with vm_page_unwire() to provide a more precise message.
  
  Reviewed by:    kib@
  
  Revision  Changes    Path
  1.411     +45 -34    src/sys/vm/vm_page.c
  1.325     +6 -6      src/sys/vm/vm_pageout.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006141954.o5EJsV6b068789>