git: 456666408f64 - main - Speed up syncer shutdown

From: Edward Tomasz Napierala <trasz_at_FreeBSD.org>
Date: Thu, 28 Nov 2024 07:48:11 UTC
The branch main has been updated by trasz:

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

commit 456666408f64d18c68b79ae13f5ae063df3c7293
Author:     Edward Tomasz Napierala <trasz@FreeBSD.org>
AuthorDate: 2024-11-27 22:33:23 +0000
Commit:     Edward Tomasz Napierala <trasz@FreeBSD.org>
CommitDate: 2024-11-28 07:47:52 +0000

    Speed up syncer shutdown
    
    When shutting down, the syncer kernel deamon needs to iterate over all
    32 of its queues, pausing for 1/4 of second each time waiting for essentially
    nothing.  Bump the SYNCER_SHUTDOWN_SPEEDUP so that it takes just a second to
    iterate.  It will still wait for another second afterwards; that bit is left
    unchanged.
    
    Reviewed By:    kib
    Differential Revision:  https://reviews.freebsd.org/D47647
---
 sys/kern/vfs_subr.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 8f582eb4ca01..feb808c0d4c7 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -323,9 +323,10 @@ DPCPU_DEFINE_STATIC(struct vdbatch, vd);
 static void	vdbatch_dequeue(struct vnode *vp);
 
 /*
- * When shutting down the syncer, run it at four times normal speed.
+ * The syncer will require at least SYNCER_MAXDELAY iterations to shutdown;
+ * we probably don't want to pause for the whole second each time.
  */
-#define SYNCER_SHUTDOWN_SPEEDUP		4
+#define SYNCER_SHUTDOWN_SPEEDUP		32
 static int sync_vnode_count;
 static int syncer_worklist_len;
 static enum { SYNCER_RUNNING, SYNCER_SHUTTING_DOWN, SYNCER_FINAL_DELAY }