From: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
To: song@kernel.org
Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org,
pankaj.gupta.linux@gmail.com,
Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
Subject: [PATCH 2/3] md: add comments in md_flush_request()
Date: Wed, 11 Nov 2020 06:16:57 +0100 [thread overview]
Message-ID: <20201111051658.18904-3-pankaj.gupta.linux@gmail.com> (raw)
In-Reply-To: <20201111051658.18904-1-pankaj.gupta.linux@gmail.com>
From: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
Request coalescing logic is dependent on flush time
update in other context. This patch adds comments
to understand the code flow better.
Signed-off-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
---
drivers/md/md.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 167c80f98533..a330e61876e0 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -662,10 +662,14 @@ bool md_flush_request(struct mddev *mddev, struct bio *bio)
{
ktime_t req_start = ktime_get_boottime();
spin_lock_irq(&mddev->lock);
+ /* flush requests wait until ongoing flush completes,
+ * hence coalescing all the pending requests.
+ */
wait_event_lock_irq(mddev->sb_wait,
!mddev->flush_bio ||
ktime_after(mddev->prev_flush_start, req_start),
mddev->lock);
+ /* new request after previous flush is completed */
if (!ktime_after(mddev->prev_flush_start, req_start)) {
WARN_ON(mddev->flush_bio);
mddev->flush_bio = bio;
--
2.20.1
next prev parent reply other threads:[~2020-11-11 5:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-11 5:16 [PATCH 0/3] md: code cleanups Pankaj Gupta
2020-11-11 5:16 ` [PATCH 1/3] md: improve variable names in md_flush_request() Pankaj Gupta
2020-11-11 6:52 ` Paul Menzel
2020-11-11 7:22 ` Pankaj Gupta
2020-11-11 5:16 ` Pankaj Gupta [this message]
2020-11-11 5:16 ` [PATCH 3/3] md: use current request time as base for ktime comparisons Pankaj Gupta
2020-11-16 17:30 ` [PATCH 0/3] md: code cleanups 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=20201111051658.18904-3-pankaj.gupta.linux@gmail.com \
--to=pankaj.gupta.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=pankaj.gupta@cloud.ionos.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 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.