Commit 39bf6270f524bbe2682b56f2a979703abf937dd1

Authored by Christoph Lameter
Committed by Linus Torvalds
1 parent 45222b9e02

VM statistics: Make timer deferrable

VM statistics updates do not matter if the kernel is in idle powersaving
mode.  So allow the timer to be deferred.

It would be better though if we could switch the timer between deferrable
and nondeferrable based on differentials present.  The timer would start
out nondeferrable and if we find that there were no updates in the last
statistics interval then we would switch the timer to deferrable.  If the
timer later finds again that there are differentials then go to
nondeferrable again.

And yet another way would be to run the timer shortly before going to idle?

The solution here means that the VM counters may be slightly off during
idle since differentials may be still pending while the timer is deferred.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff

... ... @@ -698,7 +698,7 @@
698 698 {
699 699 struct delayed_work *vmstat_work = &per_cpu(vmstat_work, cpu);
700 700  
701   - INIT_DELAYED_WORK(vmstat_work, vmstat_update);
  701 + INIT_DELAYED_WORK_DEFERRABLE(vmstat_work, vmstat_update);
702 702 schedule_delayed_work_on(cpu, vmstat_work, HZ + cpu);
703 703 }
704 704