On Thu, 3 May 2012, Gilad Ben-Yossef wrote: > vmstat_update runs every second from the work queue to update statistics > and drain per cpu pages back into the global page allocator. Looks good. - vmstat_off_cpus is a bit strange. Could we have a cpumask that has a bit set if vmstat is active? Rename to "vmstat_cpus"? - Start out with vmstat_cpus cleared? Cpus only need vmstat if they do something and if a cpu is idle on boot then it will not need vmstat enabled until the cpu does something useful. > @@ -1204,8 +1265,14 @@ static int __init setup_vmstat(void) > > register_cpu_notifier(&vmstat_notifier); > > + INIT_DELAYED_WORK_DEFERRABLE(&vmstat_monitor_work, > + vmstat_update_monitor); > + queue_delayed_work(system_unbound_wq, > + &vmstat_monitor_work, > + round_jiffies_relative(HZ)); > + > for_each_online_cpu(cpu) > - start_cpu_timer(cpu); > + setup_cpu_timer(cpu); > #endif > #ifdef CONFIG_PROC_FS > proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations); So the monitoring thread just bounces around the system? Hope that the scheduler does the right thing to keep it on processors that do some other work. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>