git: 97a057f1685a - releng/14.3 - vm_pageout: Disallow invalid values for act_scan_laundry_weight

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Sat, 03 May 2025 20:22:32 UTC
The branch releng/14.3 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=97a057f1685ade6e3e5130787a4ffb6e007780c9

commit 97a057f1685ade6e3e5130787a4ffb6e007780c9
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-04-18 17:31:27 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-05-03 20:22:08 +0000

    vm_pageout: Disallow invalid values for act_scan_laundry_weight
    
    PR:             234167
    MFC after:      2 weeks
    Approved by:    re (cperciva)
    
    (cherry picked from commit d8b03c5904faff84656d3a84a25c2b37bcbf8075)
    (cherry picked from commit 098e4ecd65492bd23f88f4358f0c6bde13a1e114)
---
 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 bc946e2bb844..c2c5281b87af 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -185,8 +185,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;