svn commit: r246030 - head/sys/vm

Andrey Zonov zont at FreeBSD.org
Mon Jan 28 12:20:21 UTC 2013


Author: zont
Date: Mon Jan 28 12:20:20 2013
New Revision: 246030
URL: http://svnweb.freebsd.org/changeset/base/246030

Log:
  - Add sysctls to show number of stats scans.
  
  MFC after:	2 weeks

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Mon Jan 28 12:08:29 2013	(r246029)
+++ head/sys/vm/vm_pageout.c	Mon Jan 28 12:20:20 2013	(r246030)
@@ -152,7 +152,9 @@ MTX_SYSINIT(vm_daemon, &vm_daemon_mtx, "
 #endif
 static int vm_max_launder = 32;
 static int vm_pageout_stats_max;
+static int vm_pageout_stats;
 static int vm_pageout_stats_interval;
+static int vm_pageout_full_stats;
 static int vm_pageout_full_stats_interval;
 static int vm_pageout_algorithm;
 static int defer_swap_pageouts;
@@ -175,12 +177,18 @@ SYSCTL_INT(_vm, OID_AUTO, max_launder,
 SYSCTL_INT(_vm, OID_AUTO, pageout_stats_max,
 	CTLFLAG_RW, &vm_pageout_stats_max, 0, "Max pageout stats scan length");
 
-SYSCTL_INT(_vm, OID_AUTO, pageout_full_stats_interval,
-	CTLFLAG_RW, &vm_pageout_full_stats_interval, 0, "Interval for full stats scan");
+SYSCTL_INT(_vm, OID_AUTO, pageout_stats,
+	CTLFLAG_RD, &vm_pageout_stats, 0, "Number of partial stats scans");
 
 SYSCTL_INT(_vm, OID_AUTO, pageout_stats_interval,
 	CTLFLAG_RW, &vm_pageout_stats_interval, 0, "Interval for partial stats scan");
 
+SYSCTL_INT(_vm, OID_AUTO, pageout_full_stats,
+	CTLFLAG_RD, &vm_pageout_full_stats, 0, "Number of full stats scans");
+
+SYSCTL_INT(_vm, OID_AUTO, pageout_full_stats_interval,
+	CTLFLAG_RW, &vm_pageout_full_stats_interval, 0, "Interval for full stats scan");
+
 #if defined(NO_SWAPPING)
 SYSCTL_INT(_vm, VM_SWAPPING_ENABLED, swap_enabled,
 	CTLFLAG_RD, &vm_swap_enabled, 0, "Enable entire process swapout");
@@ -1532,11 +1540,13 @@ vm_pageout_page_stats(void)
 	pcount = cnt.v_active_count;
 	fullintervalcount += vm_pageout_stats_interval;
 	if (fullintervalcount < vm_pageout_full_stats_interval) {
+		vm_pageout_stats++;
 		tpcount = (int64_t)vm_pageout_stats_max * cnt.v_active_count /
 		    cnt.v_page_count;
 		if (pcount > tpcount)
 			pcount = tpcount;
 	} else {
+		vm_pageout_full_stats++;
 		fullintervalcount = 0;
 	}
 


More information about the svn-src-head mailing list