svn commit: r303627 - head/sys/vm
Alan Cox
alc at FreeBSD.org
Mon Aug 1 17:25:09 UTC 2016
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);
More information about the svn-src-all
mailing list