From d8b03c5904faff84656d3a84a25c2b37bcbf8075 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Fri, 18 Apr 2025 17:31:27 +0000 Subject: [PATCH] vm_pageout: Disallow invalid values for act_scan_laundry_weight PR: 234167 MFC after: 2 weeks --- sys/vm/vm_pageout.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 7b303d7d905..704f1046d72 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -184,8 +184,23 @@ SYSCTL_INT(_vm, OID_AUTO, pageout_oom_seq, "back-to-back calls to oom detector to start OOM"); static int act_scan_laundry_weight = 3; -SYSCTL_INT(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN, - &act_scan_laundry_weight, 0, + +static int +sysctl_act_scan_laundry_weight(SYSCTL_HANDLER_ARGS) +{ + int error, newval; + + newval = act_scan_laundry_weight; + error = sysctl_handle_int(oidp, &newval, 0, req); + if (error || req->newptr == NULL) + return (error); + if (newval < 1) + return (EINVAL); + act_scan_laundry_weight = newval; + return (0); +} +SYSCTL_PROC(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN | CTLTYPE_INT, + &act_scan_laundry_weight, 0, sysctl_act_scan_laundry_weight, "I", "weight given to clean vs. dirty pages in active queue scans"); static u_int vm_background_launder_rate = 4096;