From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 0/2] btrfs: reduce the duplicated reads during P/Q scrub
Date: Thu, 13 Apr 2023 13:57:16 +0800 [thread overview]
Message-ID: <cover.1681364951.git.wqu@suse.com> (raw)
[PROBLEM]
It's a known problem that btrfs scrub for RAID56 is pretty slow.
[CAUSE]
One of the causes is that we read the same data stripes at least twice
during P/Q stripes scrub.
This means, during a full fs scrub (one scrub process for each device),
there will be quite some extra seeks just because of this.
[FIX]
The truth is, scrub stripes have a much better view of the data stripes.
As btrfs would firstly verify all data stripes, and only continue
scrubing the P/Q stripes if all the data stripes is fine after needed
repair.
So this means, as long as there is no new RMW writes into the RAID56
block group, we can re-use the scrub cache for P/Q verification.
This patchset would fix it by:
- Ensure the RAID56 block groups are marked read-only for scrub
This is to avoid RMW in to the block group, or scrub cache is no
longer reliable.
- Introduce a new interface to pass cached pages to RAID56 cache
The only disadvantage is here we still need to do page copy, due to
the uncertain lifespan of an rbio.
Qu Wenruo (2):
btrfs: scrub: try harder to mark RAID56 block groups read-only
btrfs: scrub: use recovered data stripes as cache to avoid unnecessary
read
fs/btrfs/block-group.c | 16 +++++++++++++--
fs/btrfs/raid56.c | 46 ++++++++++++++++++++++++++++++++++++++++++
fs/btrfs/raid56.h | 3 +++
fs/btrfs/scrub.c | 16 ++++++++++++++-
4 files changed, 78 insertions(+), 3 deletions(-)
--
2.39.2
next reply other threads:[~2023-04-13 5:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 5:57 Qu Wenruo [this message]
2023-04-13 5:57 ` [PATCH 1/2] btrfs: scrub: try harder to mark RAID56 block groups read-only Qu Wenruo
2023-04-13 5:57 ` [PATCH 2/2] btrfs: scrub: use recovered data stripes as cache to avoid unnecessary read Qu Wenruo
2023-04-17 22:51 ` [PATCH 0/2] btrfs: reduce the duplicated reads during P/Q scrub David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1681364951.git.wqu@suse.com \
--to=wqu@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.