svn commit: r284376 - head/sys/vm

Alan Cox alc at FreeBSD.org
Sun Jun 14 05:23:40 UTC 2015


Author: alc
Date: Sun Jun 14 05:23:39 2015
New Revision: 284376
URL: https://svnweb.freebsd.org/changeset/base/284376

Log:
  As the next step in eliminating PG_CACHE pages, free rather than cache
  pages in vm_pageout_scan().  The reactivation rate of cache pages created
  by vm_pageout_scan() is extremely low; typically no more than 0.5% to
  2.25% of the pages are ever reactivated.  At the same time, caching pages
  is more expensive than freeing them.  For example, in a test with
  PostgreSQL, this change reduced the amount of time spent in the inactive
  queue scan by 1/6.
  
  Differential Revision:	https://reviews.freebsd.org/D2805
  Reviewed by:	kib
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Sun Jun 14 05:12:48 2015	(r284375)
+++ head/sys/vm/vm_pageout.c	Sun Jun 14 05:23:39 2015	(r284376)
@@ -1233,10 +1233,10 @@ vm_pageout_scan(struct vm_domain *vmd, i
 			--page_shortage;
 		} else if (m->dirty == 0) {
 			/*
-			 * Clean pages can be placed onto the cache queue.
-			 * This effectively frees them.
+			 * Clean pages can be freed.
 			 */
-			vm_page_cache(m);
+			vm_page_free(m);
+			PCPU_INC(cnt.v_dfree);
 			--page_shortage;
 		} else if ((m->flags & PG_WINATCFLS) == 0 && pass < 2) {
 			/*


More information about the svn-src-head mailing list