Author: alc
Date: Mon Aug  1 17:25:07 2016
New Revision: 303627
URL: https://svnweb.freebsd.org/changeset/base/303627

Log:
  Restore the historical behavior of "sysctl vm.swap_idle_enabled=1".  Prior
  to r254304, we had separate functions for reclamation and laundering
  (vm_pageout_scan) versus updating usage information, i.e., "reference
  bits", on active pages (vm_pageout_page_stats), and we only performed
  vm_req_vmdaemon(VM_SWAP_IDLE) if vm_pages_needed was true.  However, since
  r254303, if vm_swap_idle_enabled was "1", we have performed
  vm_req_vmdaemon(VM_SWAP_IDLE) regardless of whether we are short of free
  pages.  This was unintended and too aggressive, so I suspect no one uses
  this feature.  With this change, we restore the historical behavior and
  only perform vm_req_vmdaemon(VM_SWAP_IDLE) when we are short of free
  pages.
  
  Reviewed by:  kib, markj

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c    Mon Aug  1 17:02:21 2016        (r303626)
+++ head/sys/vm/vm_pageout.c    Mon Aug  1 17:25:07 2016        (r303627)
@@ -1289,9 +1289,10 @@ relock_queue:
        vm_pagequeue_unlock(pq);
 #if !defined(NO_SWAPPING)
        /*
-        * Idle process swapout -- run once per second.
+        * Idle process swapout -- run once per second when we are reclaiming
+        * pages.
         */
-       if (vm_swap_idle_enabled) {
+       if (vm_swap_idle_enabled && pass > 0) {
                static long lsec;
                if (time_second != lsec) {
                        vm_req_vmdaemon(VM_SWAP_IDLE);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to