git: b2db87294ab5 - stable/13 - Make vmdaemon timeout configurable
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 18 Feb 2022 15:10:22 UTC
The branch stable/13 has been updated by trasz:
URL: https://cgit.FreeBSD.org/src/commit/?id=b2db87294ab5e6b27f35a12627fe92520724a06f
commit b2db87294ab5e6b27f35a12627fe92520724a06f
Author: Edward Tomasz Napierala <trasz@FreeBSD.org>
AuthorDate: 2021-10-17 12:48:50 +0000
Commit: Edward Tomasz Napierala <trasz@FreeBSD.org>
CommitDate: 2022-02-14 19:28:56 +0000
Make vmdaemon timeout configurable
Make vmdaemon timeout configurable, so that one can adjust
how often it runs.
Here's a trick: set this to 1, then run 'limits -m 0 sh',
then run whatever you want with 'ktrace -it XXX', and observe
how the working set changes over time.
Reviewed By: kib
Sponsored By: EPSRC
Differential Revision: https://reviews.freebsd.org/D22038
(cherry picked from commit 0f559a9f097b9eea318e970155fb23e37af07c4e)
---
sys/vm/vm_swapout.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/sys/vm/vm_swapout.c b/sys/vm/vm_swapout.c
index eaa6b9618426..008dd6f00cbc 100644
--- a/sys/vm/vm_swapout.c
+++ b/sys/vm/vm_swapout.c
@@ -153,6 +153,11 @@ SYSCTL_INT(_vm, OID_AUTO, swap_idle_threshold2, CTLFLAG_RW,
&swap_idle_threshold2, 0,
"Time before a process will be swapped out");
+static int vm_daemon_timeout = 0;
+SYSCTL_INT(_vm, OID_AUTO, vmdaemon_timeout, CTLFLAG_RW,
+ &vm_daemon_timeout, 0,
+ "Time between vmdaemon runs");
+
static int vm_pageout_req_swapout; /* XXX */
static int vm_daemon_needed;
static struct mtx vm_daemon_mtx;
@@ -374,17 +379,15 @@ vm_daemon(void)
int breakout, swapout_flags, tryagain, attempts;
#ifdef RACCT
uint64_t rsize, ravailable;
+
+ if (racct_enable && vm_daemon_timeout == 0)
+ vm_daemon_timeout = hz;
#endif
while (TRUE) {
mtx_lock(&vm_daemon_mtx);
msleep(&vm_daemon_needed, &vm_daemon_mtx, PPAUSE, "psleep",
-#ifdef RACCT
- racct_enable ? hz : 0
-#else
- 0
-#endif
- );
+ vm_daemon_timeout);
swapout_flags = vm_pageout_req_swapout;
vm_pageout_req_swapout = 0;
mtx_unlock(&vm_daemon_mtx);