Commit 77461ab3 authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds

Make vm statistics update interval configurable

Make it configurable.  Code in mm makes the vm statistics intervals
independent from the cache reaper use that opportunity to make it
configurable.
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d1187ed2
...@@ -77,6 +77,7 @@ extern int sysctl_drop_caches; ...@@ -77,6 +77,7 @@ extern int sysctl_drop_caches;
extern int percpu_pagelist_fraction; extern int percpu_pagelist_fraction;
extern int compat_log; extern int compat_log;
extern int maps_protect; extern int maps_protect;
extern int sysctl_stat_interval;
/* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
static int maxolduid = 65535; static int maxolduid = 65535;
...@@ -857,6 +858,17 @@ static ctl_table vm_table[] = { ...@@ -857,6 +858,17 @@ static ctl_table vm_table[] = {
.extra2 = &one_hundred, .extra2 = &one_hundred,
}, },
#endif #endif
#ifdef CONFIG_SMP
{
.ctl_name = CTL_UNNUMBERED,
.procname = "stat_interval",
.data = &sysctl_stat_interval,
.maxlen = sizeof(sysctl_stat_interval),
.mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies,
},
#endif
#if defined(CONFIG_X86_32) || \ #if defined(CONFIG_X86_32) || \
(defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL)) (defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL))
{ {
......
...@@ -641,11 +641,13 @@ const struct seq_operations vmstat_op = { ...@@ -641,11 +641,13 @@ const struct seq_operations vmstat_op = {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
static DEFINE_PER_CPU(struct delayed_work, vmstat_work); static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
int sysctl_stat_interval __read_mostly = HZ;
static void vmstat_update(struct work_struct *w) 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), HZ); schedule_delayed_work(&__get_cpu_var(vmstat_work),
sysctl_stat_interval);
} }
static void __devinit start_cpu_timer(int cpu) static void __devinit start_cpu_timer(int 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