Re: [PATCH 00/12] btrfs: async discard follow up

David Sterba
2020-01-03T14:51:37Z

On Thu, Jan 02, 2020 at 04:26:34PM -0500, Dennis Zhou wrote:
> Hello,
>
> Dave applied 1-12 from v6 [1]. This is a follow up cleaning up the
> remaining 10 patches adding 2 more to deal with a rare -1 [2] that I
> haven't quite figured out how to repro. This is also available at [3].
>
> This series is on top of btrfs-devel#misc-next-with-discard-v6 0c7be920bd7d.
>
> [1] https://lore.kernel.org/linux-btrfs/cover.1576195673.git.dennis@kernel.org/
> [2] https://lore.kernel.org/linux-btrfs/20191217145541.GE3929@suse.cz/
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/dennis/misc.git/log/?h=async-discard
>
> Dennis Zhou (12):
> btrfs: calculate discard delay based on number of extents
> btrfs: add bps discard rate limit for async discard
> btrfs: limit max discard size for async discard
> btrfs: make max async discard size tunable
> btrfs: have multiple discard lists
> btrfs: only keep track of data extents for async discard
> btrfs: keep track of discard reuse stats
> btrfs: add async discard header
> btrfs: increase the metadata allowance for the free_space_cache
> btrfs: make smaller extents more likely to go into bitmaps
> btrfs: ensure removal of discardable_* in free_bitmap()
> btrfs: add correction to handle -1 edge case in async discard

Besides the changes posted to the patches, I did more style cleanups and
formatting adjustments as I went through the patches. I'll do some
testing again to be sure there are no bugs introduced by that, but
otherwise the patchset can be considered merged to misc-next. I'll push
the branch today.

It's a lot of new code but I was able to comprehend what's going on,
great that there's the patch adding implementation overview.
As the feature is not on by default and requires "special" hardware, it
should be safe, basisc tests passed so now we're left with the hard bugs
and corner cases. Thanks.