public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
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


             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