btrfs: increase the metadata allowance for the free_space_cache
authorDennis Zhou <dennis@kernel.org>
Thu, 2 Jan 2020 21:26:43 +0000 (16:26 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 20 Jan 2020 15:41:00 +0000 (16:41 +0100)
commit5d90c5c75711d9734e9d3d38a6e3b849b7bea742
tree292665441c12c09e4959c5871249ebfa4b56662a
parentdbc2a8c92756507e8183a4c23a02fa2a994eb640
btrfs: increase the metadata allowance for the free_space_cache

Currently, there is no way for the free space cache to recover from
being serviced by purely bitmaps because the extent threshold is set to
0 in recalculate_thresholds() when we surpass the metadata allowance.

This adds a recovery mechanism by keeping large extents out of the
bitmaps and increases the metadata upper bound to 64KB. The recovery
mechanism bypasses this upper bound, thus making it a soft upper bound.
But, with the bypass being 1MB or greater, it shouldn't add unbounded
overhead.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/free-space-cache.c