diff options
author | Josef Bacik <jbacik@fb.com> | 2015-09-29 11:40:47 -0400 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2015-10-21 18:55:19 -0700 |
commit | 4f4db2174d8d6cdc093cbb79d17fbfe0f4d9fbde (patch) | |
tree | ae850a309ddfe971d0e862aafbfb951163b5a842 /fs/btrfs/locking.c | |
parent | 36af4e0737f6aa494e43497a5a34588a1d5cb12f (diff) | |
download | blackbird-obmc-linux-4f4db2174d8d6cdc093cbb79d17fbfe0f4d9fbde.tar.gz blackbird-obmc-linux-4f4db2174d8d6cdc093cbb79d17fbfe0f4d9fbde.zip |
Btrfs: keep track of max_extent_size per space_info
When we are heavily fragmented we can induce a lot of latency trying to make an
allocation happen that is simply not going to happen. Thankfully we keep track
of our max_extent_size when going through the allocator, so if we get to the
point where we are exiting find_free_extent with ENOSPC then set our
space_info->max_extent_size so we can keep future allocations from having to pay
this cost. We reset the max_extent_size whenever we release pinned bytes back
into this space info so we can redo all the work. Thanks,
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/locking.c')
0 files changed, 0 insertions, 0 deletions