Commit 39bf6270f524bbe2682b56f2a979703abf937dd1
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 |
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877
-
mentioned in commit ba4877