diff options
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ecc3dbad606b..f391c0c4ed1d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1948,6 +1948,14 @@ void __init page_alloc_init_late(void)  	wait_for_completion(&pgdat_init_all_done_comp);  	/* +	 * The number of managed pages has changed due to the initialisation +	 * so the pcpu batch and high limits needs to be updated or the limits +	 * will be artificially small. +	 */ +	for_each_populated_zone(zone) +		zone_pcp_update(zone); + +	/*  	 * We initialized the rest of the deferred pages.  Permanently disable  	 * on-demand struct page initialization.  	 */ @@ -3720,10 +3728,6 @@ try_this_zone:  static void warn_alloc_show_mem(gfp_t gfp_mask, nodemask_t *nodemask)  {  	unsigned int filter = SHOW_MEM_FILTER_NODES; -	static DEFINE_RATELIMIT_STATE(show_mem_rs, HZ, 1); - -	if (!__ratelimit(&show_mem_rs)) -		return;  	/*  	 * This documents exceptions given to allocations in certain @@ -3744,8 +3748,7 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)  {  	struct va_format vaf;  	va_list args; -	static DEFINE_RATELIMIT_STATE(nopage_rs, DEFAULT_RATELIMIT_INTERVAL, -				      DEFAULT_RATELIMIT_BURST); +	static DEFINE_RATELIMIT_STATE(nopage_rs, 10*HZ, 1);  	if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs))  		return; @@ -8514,7 +8517,6 @@ void free_contig_range(unsigned long pfn, unsigned int nr_pages)  	WARN(count != 0, "%d pages are still in use!\n", count);  } -#ifdef CONFIG_MEMORY_HOTPLUG  /*   * The zone indicated has a new number of managed_pages; batch sizes and percpu   * page high values need to be recalulated. @@ -8528,7 +8530,6 @@ void __meminit zone_pcp_update(struct zone *zone)  				per_cpu_ptr(zone->pageset, cpu));  	mutex_unlock(&pcp_batch_high_lock);  } -#endif  void zone_pcp_reset(struct zone *zone)  {  |