]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Propagate extent_bytes change to autotrim thread
authorvaclavskala <33496485+vaclavskala@users.noreply.github.com>
Fri, 28 Oct 2022 17:16:31 +0000 (19:16 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 1 Nov 2022 19:48:23 +0000 (12:48 -0700)
The autotrim thread only reads zfs_trim_extent_bytes_min and
zfs_trim_extent_bytes_max variable only on thread start.  We
should check for parameter changes during thread execution to
allow parameter changes take effect without needing to disable
then restart the autotrim.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Václav Skála <skala@vshosting.cz>
Closes #14077

module/zfs/vdev_trim.c

index 2bae33b2b532d239e0de804b3816a75b320779b4..92daed48f3d51da9b72fdcf8483f57c305b8077b 100644 (file)
@@ -1188,12 +1188,11 @@ vdev_autotrim_thread(void *arg)
        mutex_exit(&vd->vdev_autotrim_lock);
        spa_config_enter(spa, SCL_CONFIG, FTAG, RW_READER);
 
-       uint64_t extent_bytes_max = zfs_trim_extent_bytes_max;
-       uint64_t extent_bytes_min = zfs_trim_extent_bytes_min;
-
        while (!vdev_autotrim_should_stop(vd)) {
                int txgs_per_trim = MAX(zfs_trim_txg_batch, 1);
                boolean_t issued_trim = B_FALSE;
+               uint64_t extent_bytes_max = zfs_trim_extent_bytes_max;
+               uint64_t extent_bytes_min = zfs_trim_extent_bytes_min;
 
                /*
                 * All of the metaslabs are divided in to groups of size