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: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
d1187ed210
Коммит
77461ab332
|
@ -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[] = {
|
||||||
.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 = {
|
||||||
|
|
||||||
#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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче