svn commit: r303774 - user/alc/PQ_LAUNDRY/sys/vm

Alan Cox alc at FreeBSD.org
Fri Aug 5 16:49:33 UTC 2016


Author: alc
Date: Fri Aug  5 16:49:32 2016
New Revision: 303774
URL: https://svnweb.freebsd.org/changeset/base/303774

Log:
  A second attempt at avoiding spurious "cycle" decrements.

Modified:
  user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c

Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c	Fri Aug  5 16:44:11 2016	(r303773)
+++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c	Fri Aug  5 16:49:32 2016	(r303774)
@@ -1078,6 +1078,7 @@ vm_pageout_laundry_worker(void *arg)
 	 * The pageout laundry worker is never done, so loop forever.
 	 */
 	for (;;) {
+		KASSERT(cycle >= 0, ("negative cycle %d", cycle));
 		KASSERT(target >= 0, ("negative target %d", target));
 		launder = 0;
 
@@ -1111,7 +1112,7 @@ vm_pageout_laundry_worker(void *arg)
 			if (vm_laundry_target() <= 0 || cycle == 0) {
 				shortfall = prev_shortfall = target = 0;
 			} else {
-				launder = target / cycle;
+				launder = target / cycle--;
 				goto dolaundry;
 			}
 		}
@@ -1162,7 +1163,7 @@ vm_pageout_laundry_worker(void *arg)
 			target = min(target, bkgrd_launder_max);
 		}
 		if (target > 0 && cycle != 0)
-			launder = target / cycle;
+			launder = target / cycle--;
 
 dolaundry:
 		if (launder > 0)
@@ -1171,7 +1172,6 @@ dolaundry:
 
 		tsleep(&vm_cnt.v_laundry_count, PVM, "laundr",
 		    hz / VM_LAUNDER_INTERVAL);
-		cycle--;
 	}
 }
 


More information about the svn-src-user mailing list