From: Logan Gunthorpe <logang@deltatee.com>
To: linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org,
Song Liu <song@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>,
Guoqing Jiang <guoqing.jiang@linux.dev>,
Stephen Bates <sbates@raithlin.com>,
Martin Oliveira <Martin.Oliveira@eideticom.com>,
David Sloan <David.Sloan@eideticom.com>,
Logan Gunthorpe <logang@deltatee.com>
Subject: [PATCH v3 01/15] md/raid5: Make logic blocking check consistent with logic that blocks
Date: Thu, 16 Jun 2022 13:19:31 -0600 [thread overview]
Message-ID: <20220616191945.23935-2-logang@deltatee.com> (raw)
In-Reply-To: <20220616191945.23935-1-logang@deltatee.com>
The check in raid5_make_request differs very slightly from the logic
that causes it to block lower down. This likely does not cause a bug
as the check is fuzzy anyway (as reshape may move on between the first
check and the subsequent check). However, make it consistent so it can
be cleaned up in a subsequent patch.
The condition which causes the schedule is:
!(mddev->reshape_backwards ? logical_sector < conf->reshape_progress :
logical_sector >= conf->reshape_progress) &&
(mddev->reshape_backwards ? logical_sector < conf->reshape_safe :
logical_sector >= conf->reshape_safe)
The condition that causes the early bailout is made to match this.
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
---
drivers/md/raid5.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 5d84bad8b854..b3d1f894f154 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -5841,7 +5841,7 @@ static bool raid5_make_request(struct mddev *mddev, struct bio * bi)
if ((bi->bi_opf & REQ_NOWAIT) &&
(conf->reshape_progress != MaxSector) &&
(mddev->reshape_backwards
- ? (logical_sector > conf->reshape_progress && logical_sector <= conf->reshape_safe)
+ ? (logical_sector >= conf->reshape_progress && logical_sector < conf->reshape_safe)
: (logical_sector >= conf->reshape_safe && logical_sector < conf->reshape_progress))) {
bio_wouldblock_error(bi);
if (rw == WRITE)
--
2.30.2
next prev parent reply other threads:[~2022-06-16 19:19 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-16 19:19 [PATCH v3 00/15] Improve Raid5 Lock Contention Logan Gunthorpe
2022-06-16 19:19 ` Logan Gunthorpe [this message]
2022-06-16 19:19 ` [PATCH v3 02/15] md/raid5: Factor out ahead_of_reshape() function Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 03/15] md/raid5: Refactor raid5_make_request loop Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 04/15] md/raid5: Move stripe_add_to_batch_list() call out of add_stripe_bio() Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 05/15] md/raid5: Move common stripe get code into new find_get_stripe() helper Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 06/15] md/raid5: Factor out helper from raid5_make_request() loop Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 07/15] md/raid5: Drop the do_prepare flag in raid5_make_request() Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 08/15] md/raid5: Move read_seqcount_begin() into make_stripe_request() Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 09/15] md/raid5: Refactor for loop in raid5_make_request() into while loop Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 10/15] md/raid5: Keep a reference to last stripe_head for batch Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 11/15] md/raid5: Refactor add_stripe_bio() Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 12/15] md/raid5: Check all disks in a stripe_head for reshape progress Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 13/15] md/raid5: Pivot raid5_make_request() Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 14/15] md/raid5: Improve debug prints Logan Gunthorpe
2022-06-16 19:19 ` [PATCH v3 15/15] md/raid5: Increase restriction on max segments per request Logan Gunthorpe
2022-06-16 21:32 ` [Non-DoD Source] " Finlayson, James M CIV (USA)
2022-06-16 21:35 ` Logan Gunthorpe
2022-06-23 4:48 ` [PATCH v3 00/15] Improve Raid5 Lock Contention Song Liu
2022-07-03 7:51 ` Christoph Hellwig
2022-07-03 14:54 ` Song Liu
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=20220616191945.23935-2-logang@deltatee.com \
--to=logang@deltatee.com \
--cc=David.Sloan@eideticom.com \
--cc=Martin.Oliveira@eideticom.com \
--cc=guoqing.jiang@linux.dev \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=sbates@raithlin.com \
--cc=song@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;
as well as URLs for NNTP newsgroup(s).