From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
To: linux-kernel@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Subject: [PATCH 18/19] write-back: introduce a helper function
Date: Wed, 27 May 2009 16:06:59 +0300 [thread overview]
Message-ID: <20090527130659.4913.68260.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090527130503.4913.62042.sendpatchset@localhost.localdomain>
From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Subject: [PATCH] write-back: introduce a helper function
This patch is just a clean up and a preparation for the
following periodic write-back optimization patches. It
introduces a helper 'setup_wb_timer()' function which
sets up the periodic write-back timer to the specified
value, or to the default value. The code just looks
neater with this helper.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Cc: Christoph Hellwig <hch@infradead.org>
---
mm/page-writeback.c | 25 +++++++++++++++++++------
1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 30351f0..8a213a9 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -738,6 +738,21 @@ static DEFINE_TIMER(wb_timer, wb_timer_fn, 0, 0);
static DEFINE_TIMER(laptop_mode_wb_timer, laptop_timer_fn, 0, 0);
/*
+ * Setup the periodic write-back timer to expires at @expires jiffies. If
+ * @expires is zero, the timer is set up to the default interval.
+ */
+static void setup_wb_timer(unsigned long expires)
+{
+ if (!expires) {
+ /* Setup to the default wake-up period value */
+ expires = jiffies;
+ expires += msecs_to_jiffies(dirty_writeback_interval * 10);
+ }
+
+ mod_timer(&wb_timer, expires);
+}
+
+/*
* Periodic writeback of "old" data.
*
* Define "old": the first time one of an inode's pages is dirtied, we mark the
@@ -792,7 +807,7 @@ static void wb_kupdate(unsigned long arg)
if (time_before(next_jif, jiffies + HZ))
next_jif = jiffies + HZ;
if (dirty_writeback_interval)
- mod_timer(&wb_timer, next_jif);
+ setup_wb_timer(next_jif);
}
/*
@@ -803,8 +818,7 @@ int dirty_writeback_centisecs_handler(ctl_table *table, int write,
{
proc_dointvec(table, write, file, buffer, length, ppos);
if (dirty_writeback_interval)
- mod_timer(&wb_timer, jiffies +
- msecs_to_jiffies(dirty_writeback_interval * 10));
+ setup_wb_timer(0);
else
del_timer(&wb_timer);
return 0;
@@ -813,7 +827,7 @@ int dirty_writeback_centisecs_handler(ctl_table *table, int write,
static void wb_timer_fn(unsigned long unused)
{
if (pdflush_operation(wb_kupdate, 0) < 0)
- mod_timer(&wb_timer, jiffies + HZ); /* delay 1 second */
+ setup_wb_timer( jiffies + HZ); /* delay 1 second */
}
static void laptop_flush(unsigned long unused)
@@ -906,8 +920,7 @@ void __init page_writeback_init(void)
{
int shift;
- mod_timer(&wb_timer,
- jiffies + msecs_to_jiffies(dirty_writeback_interval * 10));
+ setup_wb_timer(0);
writeback_set_ratelimit();
register_cpu_notifier(&ratelimit_nb);
--
1.6.0.6
next prev parent reply other threads:[~2009-05-27 11:18 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-27 13:05 [PATCH 00/19] periodic write-back timer optimization Artem Bityutskiy
2009-05-27 13:05 ` Artem Bityutskiy
2009-05-27 12:23 ` Arnd Bergmann
2009-05-27 12:27 ` Artem Bityutskiy
2009-05-27 12:27 ` Artem Bityutskiy
2009-05-27 12:33 ` Jens Axboe
2009-05-27 12:37 ` Artem Bityutskiy
2009-05-27 12:37 ` Artem Bityutskiy
2009-05-27 12:47 ` Jens Axboe
2009-05-28 6:34 ` Artem Bityutskiy
2009-05-28 6:34 ` Artem Bityutskiy
2009-05-28 8:18 ` Jens Axboe
2009-06-03 11:13 ` Artem Bityutskiy
2009-06-03 11:13 ` Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 01/19] VFS: introduce helpers for manipulation s_dirty flag Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 02/19] AFFS: do not manipulate s_dirt directly Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 03/19] BFS: " Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 04/19] EXOFS: " Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 05/19] EXT2: " Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 06/19] EXT4: " Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 07/19] FAT: " Artem Bityutskiy
2009-05-27 13:05 ` [PATCH 08/19] HFS: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 09/19] HFSPLUS: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 10/19] JFFS2: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 11/19] NILFS: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 12/19] reiserfs: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 13/19] SYSV: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 14/19] UDF: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 15/19] UFS: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 16/19] XFS: " Artem Bityutskiy
2009-05-27 13:06 ` [PATCH 17/19] VFS: use sb_is_dirty helper Artem Bityutskiy
2009-05-27 13:06 ` Artem Bityutskiy [this message]
2009-05-27 13:07 ` [PATCH 19/19] periodic write-back: do not wake up unnecessarily Artem Bityutskiy
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=20090527130659.4913.68260.sendpatchset@localhost.localdomain \
--to=artem.bityutskiy@nokia.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@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 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.