/* percpu_pagelist_fraction - changes the pcp->high for each zone on each cpu. It is the fraction of total pages in each zone that a hot per cpu pagelist can have before it gets flushed back to buddy allocator.  */
int percpu_pagelist_fraction_sysctl_handler(ctl_table *table, int write, void __user *buffer, size_t *length, loff_t *ppos)
/* percpu_pagelist_fraction - changes the pcp->high for each zone on each cpu. It is the fraction of total pages in each zone that a hot per cpu pagelist can have before it gets flushed back to buddy allocator.  */
int percpu_pagelist_fraction_sysctl_handler(ctl_table *table, int write, void __user *buffer, size_t *length, loff_t *ppos)
{
	struct zone *zone;
	unsigned int cpu;
	int ret;
	ret = proc_dointvec_minmax(table, write, buffer, length, ppos);
	if (!write || (ret == -EINVAL))
		return ret;
	for_each_populated_zone(zone) {
		for_each_online_cpu(cpu) {
			unsigned long  high;
			high = zone->present_pages / percpu_pagelist_fraction;
			setup_pagelist_highmark(zone_pcp(zone, cpu), high);
		}
	}
	return 0;
}