git: de56ac880999 - main - zfs: bring per_txg_dirty_frees_percent back to 30

From: Mateusz Guzik <mjg_at_FreeBSD.org>
Date: Wed, 28 Sep 2022 01:28:45 UTC
The branch main has been updated by mjg:

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

commit de56ac880999cc5460f68096ff0ad1b58a3433ce
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2022-09-28 01:26:52 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2022-09-28 01:26:52 +0000

    zfs: bring per_txg_dirty_frees_percent back to 30
    
    This cherry-picks upstream eb9bec0a5d19abf9404f52081424fbb814e6188a
    
        The current value causes significant artificial slowdown during mass
        parallel file removal, which can be observed both on FreeBSD and Linux
        when running real workloads.
    
        Sample results from Linux doing make -j 96 clean after an allyesconfig
        modules build:
    
        before: 4.14s user 6.79s system 48% cpu 22.631 total
        after:  4.17s user 6.44s system 153% cpu 6.927 total
    
        FreeBSD results in the ticket.
    
    See https://github.com/openzfs/zfs/issues/13932
---
 sys/contrib/openzfs/man/man4/zfs.4   | 2 +-
 sys/contrib/openzfs/module/zfs/dmu.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/contrib/openzfs/man/man4/zfs.4 b/sys/contrib/openzfs/man/man4/zfs.4
index 90a8ca788c78..cc8ff316791c 100644
--- a/sys/contrib/openzfs/man/man4/zfs.4
+++ b/sys/contrib/openzfs/man/man4/zfs.4
@@ -1671,7 +1671,7 @@ prefetched during a pool traversal, like
 .Nm zfs Cm send
 or other data crawling operations.
 .
-.It Sy zfs_per_txg_dirty_frees_percent Ns = Ns Sy 5 Ns % Pq ulong
+.It Sy zfs_per_txg_dirty_frees_percent Ns = Ns Sy 30 Ns % Pq ulong
 Control percentage of dirtied indirect blocks from frees allowed into one TXG.
 After this threshold is crossed, additional frees will wait until the next TXG.
 .Sy 0 No disables this throttle.
diff --git a/sys/contrib/openzfs/module/zfs/dmu.c b/sys/contrib/openzfs/module/zfs/dmu.c
index 58c88c7d7854..dc6e87cd19fb 100644
--- a/sys/contrib/openzfs/module/zfs/dmu.c
+++ b/sys/contrib/openzfs/module/zfs/dmu.c
@@ -70,7 +70,7 @@ static int zfs_nopwrite_enabled = 1;
  * will wait until the next TXG.
  * A value of zero will disable this throttle.
  */
-static unsigned long zfs_per_txg_dirty_frees_percent = 5;
+static unsigned long zfs_per_txg_dirty_frees_percent = 30;
 
 /*
  * Enable/disable forcing txg sync when dirty checking for holes with lseek().