summaryrefslogtreecommitdiff
path: root/fs/btrfs/file-item.h
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2023-08-03 09:33:29 +0300
committerDavid Sterba <dsterba@suse.com>2023-08-21 15:54:48 +0300
commit1dc4888e725dc748b82858984f2a5bd41efc5201 (patch)
tree89585d4b2bf34e6ebdd09a4fe232b90f495b205f /fs/btrfs/file-item.h
parent94628ad9440800ca0bd2436203a27c7576f769b7 (diff)
downloadlinux-1dc4888e725dc748b82858984f2a5bd41efc5201.tar.xz
btrfs: scrub: avoid unnecessary extent tree search preparing stripes
Since commit e02ee89baa66 ("btrfs: scrub: switch scrub_simple_mirror() to scrub_stripe infrastructure"), scrub no longer re-use the same path for extent tree search. This can lead to unnecessary extent tree search, especially for the new stripe based scrub, as we have way more stripes to prepare. This patch would re-introduce a shared path for extent tree search, and properly release it when the block group is scrubbed. This change alone can improve scrub performance slightly by reducing the time spend preparing the stripe thus improving the queue depth. Before (with regression): Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz aqu-sz %util nvme0n1p3 15578.00 993616.00 5.00 0.03 0.09 63.78 1.32 100.00 After (with this patch): nvme0n1p3 15875.00 1013328.00 12.00 0.08 0.08 63.83 1.35 100.00 Fixes: e02ee89baa66 ("btrfs: scrub: switch scrub_simple_mirror() to scrub_stripe infrastructure") CC: stable@vger.kernel.org # 6.4+ Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/file-item.h')
0 files changed, 0 insertions, 0 deletions