From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH RFC 0/4] btrfs: scrub: make sctx->stripes[] a ring buffer
Date: Wed, 19 Jul 2023 13:30:22 +0800 [thread overview]
Message-ID: <cover.1689744163.git.wqu@suse.com> (raw)
!!! DO NOT MERGE !!!
This is the attempt to increase the queue depth of the scrub behavior.
Although it has a slight increase on the queue depth, it's not enough to
cause any obvious performance increase.
It's still short of 2GiB/s.
The patchset's idea is to avoid any unnecessary wait, by making
sctx->stripes[] a ring buffer, callers just grab the current slot and
queue the stripe.
The wait only happens when the current slot is still under scrub.
Unfrotauntely the benchmark doesn't help much, meaning the bottleneck is
not at the deidcated wait when the sctx->stripes[] are full.
Thus this patch is mostly sent asking for better ideas.
I'll try manually merging the read requests to see if we can get
anything better.
Qu Wenruo (4):
btrfs: scrub: move write back of repaired sectors into
scrub_stripe_read_repair_worker()
btrfs: scrub: don't go ordered workqueue for dev-replace
btrfs: scrub: use btrfs workqueue to synchronize the write back for
dev-replace
btrfs: scrub: make sctx->stripes[] array work as a ring buffer
fs/btrfs/fs.h | 2 +-
fs/btrfs/scrub.c | 493 ++++++++++++++++++++++++-----------------------
2 files changed, 249 insertions(+), 246 deletions(-)
--
2.41.0
next reply other threads:[~2023-07-19 5:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-19 5:30 Qu Wenruo [this message]
2023-07-19 5:30 ` [PATCH RFC 1/4] btrfs: scrub: move write back of repaired sectors into scrub_stripe_read_repair_worker() Qu Wenruo
2023-07-19 5:30 ` [PATCH RFC 2/4] btrfs: scrub: don't go ordered workqueue for dev-replace Qu Wenruo
2023-07-19 5:30 ` [PATCH RFC 3/4] btrfs: scrub: use btrfs workqueue to synchronize the write back " Qu Wenruo
2023-07-19 5:30 ` [PATCH RFC 4/4] btrfs: scrub: make sctx->stripes[] array work as a ring buffer Qu Wenruo
2023-07-28 3:15 ` kernel test robot
2023-07-19 6:34 ` [PATCH RFC 0/4] btrfs: scrub: make sctx->stripes[] " Martin Steigerwald
2023-07-19 6:44 ` Martin Steigerwald
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.1689744163.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox