Message ID | 73afd4f8e96351ffe1ba0d50d4fca75873ae3c54.1680723651.git.boris@bur.io (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: adjust async discard tuning | expand |
On Wed, Apr 5, 2023 at 3:49 PM Boris Burkov <boris@bur.io> wrote: > > Previously, the default was a relatively conservative 10. This results > in a 100ms delay, so with ~300 discards in a commit, it takes the full > 30s till the next commit to finish the discards. On a workstation, this > results in the disk never going idle, wasting power/battery, etc. > > Set the default to 1000, which results in using the smallest possible > delay, currently, which is 1ms. This has shown to not pathologically > keep the disk busy by the original reporter. > > Link: https://lore.kernel.org/linux-btrfs/ZCxKc5ZzP3Np71IC@infradead.org/T/#m6ebdeb475809ed7714b21b8143103fb7e5a966da > Signed-off-by: Boris Burkov <boris@bur.io> > --- > fs/btrfs/discard.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/btrfs/discard.c b/fs/btrfs/discard.c > index 317aeff6c1da..0bc526f5fcd9 100644 > --- a/fs/btrfs/discard.c > +++ b/fs/btrfs/discard.c > @@ -60,7 +60,7 @@ > #define BTRFS_DISCARD_TARGET_MSEC (6 * 60 * 60UL * MSEC_PER_SEC) > #define BTRFS_DISCARD_MIN_DELAY_MSEC (1UL) > #define BTRFS_DISCARD_MAX_DELAY_MSEC (1000UL) > -#define BTRFS_DISCARD_MAX_IOPS (10U) > +#define BTRFS_DISCARD_MAX_IOPS (1000U) > > /* Monotonically decreasing minimum length filters after index 0 */ > static int discard_minlen[BTRFS_NR_DISCARD_LISTS] = { > -- > 2.40.0 > Seems reasonable. Reviewed-by: Neal Gompa <neal@gompa.dev>
diff --git a/fs/btrfs/discard.c b/fs/btrfs/discard.c index 317aeff6c1da..0bc526f5fcd9 100644 --- a/fs/btrfs/discard.c +++ b/fs/btrfs/discard.c @@ -60,7 +60,7 @@ #define BTRFS_DISCARD_TARGET_MSEC (6 * 60 * 60UL * MSEC_PER_SEC) #define BTRFS_DISCARD_MIN_DELAY_MSEC (1UL) #define BTRFS_DISCARD_MAX_DELAY_MSEC (1000UL) -#define BTRFS_DISCARD_MAX_IOPS (10U) +#define BTRFS_DISCARD_MAX_IOPS (1000U) /* Monotonically decreasing minimum length filters after index 0 */ static int discard_minlen[BTRFS_NR_DISCARD_LISTS] = {
Previously, the default was a relatively conservative 10. This results in a 100ms delay, so with ~300 discards in a commit, it takes the full 30s till the next commit to finish the discards. On a workstation, this results in the disk never going idle, wasting power/battery, etc. Set the default to 1000, which results in using the smallest possible delay, currently, which is 1ms. This has shown to not pathologically keep the disk busy by the original reporter. Link: https://lore.kernel.org/linux-btrfs/ZCxKc5ZzP3Np71IC@infradead.org/T/#m6ebdeb475809ed7714b21b8143103fb7e5a966da Signed-off-by: Boris Burkov <boris@bur.io> --- fs/btrfs/discard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)