Commit ccde8bd4 authored by Michal Hocko's avatar Michal Hocko Committed by Linus Torvalds

vmstat: make vmstat_update deferrable

Commit 0eb77e98 ("vmstat: make vmstat_updater deferrable again and
shut down on idle") made vmstat_shepherd deferrable.  vmstat_update
itself is still useing standard timer which might interrupt idle task.
This is possible because "mm, vmstat: make quiet_vmstat lighter" removed
cancel_delayed_work from the quiet_vmstat.

Change vmstat_work to use DEFERRABLE_WORK to prevent from pointless
wakeups from the idle context.
Acked-by: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Mike Galbraith <umgwanakikbuti@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f01f17d3
...@@ -1512,7 +1512,7 @@ static void __init start_shepherd_timer(void) ...@@ -1512,7 +1512,7 @@ static void __init start_shepherd_timer(void)
int cpu; int cpu;
for_each_possible_cpu(cpu) for_each_possible_cpu(cpu)
INIT_DELAYED_WORK(per_cpu_ptr(&vmstat_work, cpu), INIT_DEFERRABLE_WORK(per_cpu_ptr(&vmstat_work, cpu),
vmstat_update); vmstat_update);
if (!alloc_cpumask_var(&cpu_stat_off, GFP_KERNEL)) if (!alloc_cpumask_var(&cpu_stat_off, GFP_KERNEL))
......
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