summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2009-04-02 23:56:39 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-03 02:04:48 (GMT)
commit98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad (patch)
tree4bad1464ee372de6789e95cb18b56ce54dd3ef27 /mm
parentd2caa3c549c74d6476e2c29e13bd4d0e7d21c7fe (diff)
downloadlinux-fsl-qoriq-98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad.tar.xz
mm: align vmstat_work's timer
Even though vmstat_work is marked deferrable, there are still benefits to aligning it. For certain applications we want to keep OS jitter as low as possible and aligning timers and work so they occur together can reduce their overall impact. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/vmstat.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 9826766..66f6130 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -891,7 +891,7 @@ static void vmstat_update(struct work_struct *w)
{
refresh_cpu_vm_stats(smp_processor_id());
schedule_delayed_work(&__get_cpu_var(vmstat_work),
- sysctl_stat_interval);
+ round_jiffies_relative(sysctl_stat_interval));
}
static void __cpuinit start_cpu_timer(int cpu)
@@ -899,7 +899,8 @@ static void __cpuinit start_cpu_timer(int cpu)
struct delayed_work *vmstat_work = &per_cpu(vmstat_work, cpu);
INIT_DELAYED_WORK_DEFERRABLE(vmstat_work, vmstat_update);
- schedule_delayed_work_on(cpu, vmstat_work, HZ + cpu);
+ schedule_delayed_work_on(cpu, vmstat_work,
+ __round_jiffies_relative(HZ, cpu));
}
/*