forked from luck/tmp_suning_uos_patched
mm, pcp: share common code between memory hotplug and percpu sysctl handler
Both the percpu_pagelist_fraction sysctl handler and memory hotplug have a common requirement of updating the pcpu page allocation batch and high values. Split the relevant helper to share common code. No functional change. Link: http://lkml.kernel.org/r/20191021094808.28824-3-mgorman@techsingularity.net Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Borislav Petkov <bp@alien8.de> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Qian Cai <cai@lca.pw> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5e27a2df03
commit
cb1ef534ce
|
@ -7988,6 +7988,15 @@ int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *table, int write,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void __zone_pcp_update(struct zone *zone)
|
||||
{
|
||||
unsigned int cpu;
|
||||
|
||||
for_each_possible_cpu(cpu)
|
||||
pageset_set_high_and_batch(zone,
|
||||
per_cpu_ptr(zone->pageset, cpu));
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
@ -8019,13 +8028,8 @@ int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *table, int write,
|
|||
if (percpu_pagelist_fraction == old_percpu_pagelist_fraction)
|
||||
goto out;
|
||||
|
||||
for_each_populated_zone(zone) {
|
||||
unsigned int cpu;
|
||||
|
||||
for_each_possible_cpu(cpu)
|
||||
pageset_set_high_and_batch(zone,
|
||||
per_cpu_ptr(zone->pageset, cpu));
|
||||
}
|
||||
for_each_populated_zone(zone)
|
||||
__zone_pcp_update(zone);
|
||||
out:
|
||||
mutex_unlock(&pcp_batch_high_lock);
|
||||
return ret;
|
||||
|
@ -8624,11 +8628,8 @@ void free_contig_range(unsigned long pfn, unsigned int nr_pages)
|
|||
*/
|
||||
void __meminit zone_pcp_update(struct zone *zone)
|
||||
{
|
||||
unsigned cpu;
|
||||
mutex_lock(&pcp_batch_high_lock);
|
||||
for_each_possible_cpu(cpu)
|
||||
pageset_set_high_and_batch(zone,
|
||||
per_cpu_ptr(zone->pageset, cpu));
|
||||
__zone_pcp_update(zone);
|
||||
mutex_unlock(&pcp_batch_high_lock);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user