* [PATCH 2/4] Make page-writeback timers 1 sec jiffy aligned
@ 2007-05-29 17:59 Venki Pallipadi
2007-05-30 17:56 ` Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Venki Pallipadi @ 2007-05-29 17:59 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
timer round_jiffies in page-writeback.
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Index: linux-2.6.22-rc-mm/mm/page-writeback.c
===================================================================
--- linux-2.6.22-rc-mm.orig/mm/page-writeback.c 2007-05-25 10:49:11.000000000 -0700
+++ linux-2.6.22-rc-mm/mm/page-writeback.c 2007-05-25 10:49:29.000000000 -0700
@@ -469,7 +469,7 @@
if (time_before(next_jif, jiffies + HZ))
next_jif = jiffies + HZ;
if (dirty_writeback_interval)
- mod_timer(&wb_timer, next_jif);
+ mod_timer(&wb_timer, round_jiffies(next_jif));
}
/*
@@ -481,7 +481,7 @@
proc_dointvec_userhz_jiffies(table, write, file, buffer, length, ppos);
if (dirty_writeback_interval) {
mod_timer(&wb_timer,
- jiffies + dirty_writeback_interval);
+ round_jiffies(jiffies + dirty_writeback_interval));
} else {
del_timer(&wb_timer);
}
@@ -491,7 +491,8 @@
static void wb_timer_fn(unsigned long unused)
{
if (pdflush_operation(wb_kupdate, 0) < 0)
- mod_timer(&wb_timer, jiffies + HZ); /* delay 1 second */
+ mod_timer(&wb_timer, round_jiffies(jiffies + HZ));
+ /* delay 1 second */
}
static void laptop_flush(unsigned long unused)
@@ -511,7 +512,7 @@
*/
void laptop_io_completion(void)
{
- mod_timer(&laptop_mode_wb_timer, jiffies + laptop_mode);
+ mod_timer(&laptop_mode_wb_timer, round_jiffies(jiffies + laptop_mode));
}
/*
@@ -582,7 +583,7 @@
*/
void __init page_writeback_init(void)
{
- mod_timer(&wb_timer, jiffies + dirty_writeback_interval);
+ mod_timer(&wb_timer, round_jiffies(jiffies + dirty_writeback_interval));
writeback_set_ratelimit();
register_cpu_notifier(&ratelimit_nb);
}
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH 2/4] Make page-writeback timers 1 sec jiffy aligned
2007-05-29 17:59 [PATCH 2/4] Make page-writeback timers 1 sec jiffy aligned Venki Pallipadi
@ 2007-05-30 17:56 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2007-05-30 17:56 UTC (permalink / raw)
To: Venki Pallipadi; +Cc: linux-kernel
On Tue, 29 May 2007 10:59:51 -0700
Venki Pallipadi <venkatesh.pallipadi@intel.com> wrote:
>
>
> timer round_jiffies in page-writeback.
>
> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
>
> Index: linux-2.6.22-rc-mm/mm/page-writeback.c
> ===================================================================
> --- linux-2.6.22-rc-mm.orig/mm/page-writeback.c 2007-05-25 10:49:11.000000000 -0700
> +++ linux-2.6.22-rc-mm/mm/page-writeback.c 2007-05-25 10:49:29.000000000 -0700
> @@ -469,7 +469,7 @@
> if (time_before(next_jif, jiffies + HZ))
> next_jif = jiffies + HZ;
> if (dirty_writeback_interval)
> - mod_timer(&wb_timer, next_jif);
> + mod_timer(&wb_timer, round_jiffies(next_jif));
> }
>
> /*
> @@ -481,7 +481,7 @@
> proc_dointvec_userhz_jiffies(table, write, file, buffer, length, ppos);
> if (dirty_writeback_interval) {
> mod_timer(&wb_timer,
> - jiffies + dirty_writeback_interval);
> + round_jiffies(jiffies + dirty_writeback_interval));
> } else {
> del_timer(&wb_timer);
> }
mutter.
These tunables are in units of centiseconds, so the user can indeed set the
writeback interval to, say, 0.2 seconds. People have played with that sort
of thing.
I doubt if this patch will hurt anyone much, but it is an incompatible
user-visible change.
Probably a suitable heuristic for fixing this would be to only do the
rounding if dirty_writeback_interval is a multiple of HZ. In the vast
majority of cases, that will be true.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-05-30 17:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-29 17:59 [PATCH 2/4] Make page-writeback timers 1 sec jiffy aligned Venki Pallipadi
2007-05-30 17:56 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox