All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kemeng Shi <shikemeng@huaweicloud.com>
To: viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz,
	tim.c.chen@linux.intel.com
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 4/6] fs/writeback: only calculate dirtied_before when b_io is empty
Date: Wed, 28 Feb 2024 17:19:56 +0800	[thread overview]
Message-ID: <20240228091958.288260-5-shikemeng@huaweicloud.com> (raw)
In-Reply-To: <20240228091958.288260-1-shikemeng@huaweicloud.com>

The dirtied_before is only used when b_io is not empty, so only calculate
when b_io is not empty.

Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
---
 fs/fs-writeback.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 1c3134817865..c98684e9e6ba 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -2105,20 +2105,21 @@ static long wb_writeback(struct bdi_writeback *wb,
 
 		spin_lock(&wb->list_lock);
 
-		/*
-		 * Kupdate and background works are special and we want to
-		 * include all inodes that need writing. Livelock avoidance is
-		 * handled by these works yielding to any other work so we are
-		 * safe.
-		 */
-		if (work->for_kupdate) {
-			dirtied_before = jiffies -
-				msecs_to_jiffies(dirty_expire_interval * 10);
-		} else if (work->for_background)
-			dirtied_before = jiffies;
-
 		trace_writeback_start(wb, work);
 		if (list_empty(&wb->b_io)) {
+			/*
+			 * Kupdate and background works are special and we want
+			 * to include all inodes that need writing. Livelock
+			 * avoidance is handled by these works yielding to any
+			 * other work so we are safe.
+			 */
+			if (work->for_kupdate) {
+				dirtied_before = jiffies -
+					msecs_to_jiffies(dirty_expire_interval *
+							 10);
+			} else if (work->for_background)
+				dirtied_before = jiffies;
+
 			queue_io(wb, work, dirtied_before);
 			queued = true;
 		}
-- 
2.30.0


  parent reply	other threads:[~2024-02-28  1:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28  9:19 [PATCH v2 0/6] Fixes and cleanups to fs-writeback Kemeng Shi
2024-02-28  9:19 ` [PATCH v2 1/6] fs/writeback: avoid to writeback non-expired inode in kupdate writeback Kemeng Shi
2024-03-18 17:07   ` Jan Kara
2024-02-28  9:19 ` [PATCH v2 2/6] fs/writeback: bail out if there is no more inodes for IO and queued once Kemeng Shi
2024-02-28  9:19 ` [PATCH v2 3/6] fs/writeback: remove unused parameter wb of finish_writeback_work Kemeng Shi
2024-02-28  9:19 ` Kemeng Shi [this message]
2024-03-18 17:10   ` [PATCH v2 4/6] fs/writeback: only calculate dirtied_before when b_io is empty Jan Kara
2024-02-28  9:19 ` [PATCH v2 5/6] fs/writeback: correct comment of __wakeup_flusher_threads_bdi Kemeng Shi
2024-02-28  9:19 ` [PATCH v2 6/6] fs/writeback: remove unnecessary return in writeback_inodes_sb Kemeng Shi
2024-03-18 17:12 ` [PATCH v2 0/6] Fixes and cleanups to fs-writeback Jan Kara
2024-03-19 15:19   ` Christian Brauner
2024-03-19 15:18 ` Christian Brauner

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=20240228091958.288260-5-shikemeng@huaweicloud.com \
    --to=shikemeng@huaweicloud.com \
    --cc=brauner@kernel.org \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.