git: e03a056de0ba - main - vfs: Fix runningspace tuning after maxphys was bumped

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Tue, 19 Nov 2024 23:51:13 UTC
The branch main has been updated by markj:

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

commit e03a056de0baa06f7b38033e56a33a19526b542c
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-11-19 23:46:24 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-11-19 23:46:50 +0000

    vfs: Fix runningspace tuning after maxphys was bumped
    
    The previous maximum value for the upper watermark was based on the old
    value of MAXPHYS.  Raise it to allow more parallel I/O on large systems.
    
    This is still a rather flawed mechanism since it's applied without
    regard to the number of filesystems or block devices between which this
    mechanism sits, but we might as well bump the limits at this point, as
    they haven't been revised in quite a long time.
    
    Reviewed by:    imp, kib
    MFC after:      2 weeks
    Fixes:          cd8537910406 ("Make MAXPHYS tunable. Bump MAXPHYS to 1M.")
    Differential Revision:  https://reviews.freebsd.org/D47398
---
 sys/kern/vfs_bio.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 62b0567f269a..10ee88328875 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -1253,15 +1253,16 @@ bufinit(void)
 	bufspacethresh = lobufspace + (hibufspace - lobufspace) / 2;
 
 	/*
-	 * Note: The 16 MiB upper limit for hirunningspace was chosen
-	 * arbitrarily and may need further tuning. It corresponds to
-	 * 128 outstanding write IO requests (if IO size is 128 KiB),
-	 * which fits with many RAID controllers' tagged queuing limits.
+	 * Note: The upper limit for hirunningspace was chosen arbitrarily and
+	 * may need further tuning. It corresponds to 128 outstanding write IO
+	 * requests, which fits with many RAID controllers' tagged queuing
+	 * limits.
+	 *
 	 * The lower 1 MiB limit is the historical upper limit for
 	 * hirunningspace.
 	 */
 	hirunningspace = lmax(lmin(roundup(hibufspace / 64, maxbcachebuf),
-	    16 * 1024 * 1024), 1024 * 1024);
+	    128 * maxphys), 1024 * 1024);
 	lorunningspace = roundup((hirunningspace * 2) / 3, maxbcachebuf);
 
 	/*