Commit 98f4ebb2 authored by Anton Blanchard's avatar Anton Blanchard Committed by Linus Torvalds

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: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d2caa3c5
...@@ -891,7 +891,7 @@ static void vmstat_update(struct work_struct *w) ...@@ -891,7 +891,7 @@ static void vmstat_update(struct work_struct *w)
{ {
refresh_cpu_vm_stats(smp_processor_id()); refresh_cpu_vm_stats(smp_processor_id());
schedule_delayed_work(&__get_cpu_var(vmstat_work), 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) static void __cpuinit start_cpu_timer(int cpu)
...@@ -899,7 +899,8 @@ 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); struct delayed_work *vmstat_work = &per_cpu(vmstat_work, cpu);
INIT_DELAYED_WORK_DEFERRABLE(vmstat_work, vmstat_update); 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));
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment