mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	mm: move mem_init_print_info() to mm_init.c
mem_init_print_info() is only called from mm_core_init(). Move it close to the caller and make it static. Link: https://lkml.kernel.org/r/20230321170513.2401534-12-rppt@kernel.org Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Cc: Doug Berger <opendmb@gmail.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Mel Gorman <mgorman@suse.de> Cc: Michal Hocko <mhocko@kernel.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									de57807e6f
								
							
						
					
					
						commit
						eb8589b4f8
					
				
					 4 changed files with 54 additions and 54 deletions
				
			
		| 
						 | 
					@ -2780,7 +2780,6 @@ extern unsigned long free_reserved_area(void *start, void *end,
 | 
				
			||||||
					int poison, const char *s);
 | 
										int poison, const char *s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern void adjust_managed_page_count(struct page *page, long count);
 | 
					extern void adjust_managed_page_count(struct page *page, long count);
 | 
				
			||||||
extern void mem_init_print_info(void);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern void reserve_bootmem_region(phys_addr_t start, phys_addr_t end);
 | 
					extern void reserve_bootmem_region(phys_addr_t start, phys_addr_t end);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -201,6 +201,7 @@ pmd_t *mm_find_pmd(struct mm_struct *mm, unsigned long address);
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * in mm/page_alloc.c
 | 
					 * in mm/page_alloc.c
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					#define K(x) ((x) << (PAGE_SHIFT-10))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern char * const zone_names[MAX_NR_ZONES];
 | 
					extern char * const zone_names[MAX_NR_ZONES];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										53
									
								
								mm/mm_init.c
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								mm/mm_init.c
									
									
									
									
									
								
							| 
						 | 
					@ -24,6 +24,8 @@
 | 
				
			||||||
#include <linux/page_ext.h>
 | 
					#include <linux/page_ext.h>
 | 
				
			||||||
#include <linux/pti.h>
 | 
					#include <linux/pti.h>
 | 
				
			||||||
#include <linux/pgtable.h>
 | 
					#include <linux/pgtable.h>
 | 
				
			||||||
 | 
					#include <linux/swap.h>
 | 
				
			||||||
 | 
					#include <linux/cma.h>
 | 
				
			||||||
#include "internal.h"
 | 
					#include "internal.h"
 | 
				
			||||||
#include "shuffle.h"
 | 
					#include "shuffle.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2649,6 +2651,57 @@ static void __init report_meminit(void)
 | 
				
			||||||
		pr_info("mem auto-init: clearing system memory may take some time...\n");
 | 
							pr_info("mem auto-init: clearing system memory may take some time...\n");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void __init mem_init_print_info(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						unsigned long physpages, codesize, datasize, rosize, bss_size;
 | 
				
			||||||
 | 
						unsigned long init_code_size, init_data_size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						physpages = get_num_physpages();
 | 
				
			||||||
 | 
						codesize = _etext - _stext;
 | 
				
			||||||
 | 
						datasize = _edata - _sdata;
 | 
				
			||||||
 | 
						rosize = __end_rodata - __start_rodata;
 | 
				
			||||||
 | 
						bss_size = __bss_stop - __bss_start;
 | 
				
			||||||
 | 
						init_data_size = __init_end - __init_begin;
 | 
				
			||||||
 | 
						init_code_size = _einittext - _sinittext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Detect special cases and adjust section sizes accordingly:
 | 
				
			||||||
 | 
						 * 1) .init.* may be embedded into .data sections
 | 
				
			||||||
 | 
						 * 2) .init.text.* may be out of [__init_begin, __init_end],
 | 
				
			||||||
 | 
						 *    please refer to arch/tile/kernel/vmlinux.lds.S.
 | 
				
			||||||
 | 
						 * 3) .rodata.* may be embedded into .text or .data sections.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					#define adj_init_size(start, end, size, pos, adj) \
 | 
				
			||||||
 | 
						do { \
 | 
				
			||||||
 | 
							if (&start[0] <= &pos[0] && &pos[0] < &end[0] && size > adj) \
 | 
				
			||||||
 | 
								size -= adj; \
 | 
				
			||||||
 | 
						} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						adj_init_size(__init_begin, __init_end, init_data_size,
 | 
				
			||||||
 | 
							     _sinittext, init_code_size);
 | 
				
			||||||
 | 
						adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
 | 
				
			||||||
 | 
						adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
 | 
				
			||||||
 | 
						adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
 | 
				
			||||||
 | 
						adj_init_size(_sdata, _edata, datasize, __start_rodata, rosize);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef	adj_init_size
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pr_info("Memory: %luK/%luK available (%luK kernel code, %luK rwdata, %luK rodata, %luK init, %luK bss, %luK reserved, %luK cma-reserved"
 | 
				
			||||||
 | 
					#ifdef	CONFIG_HIGHMEM
 | 
				
			||||||
 | 
							", %luK highmem"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
							")\n",
 | 
				
			||||||
 | 
							K(nr_free_pages()), K(physpages),
 | 
				
			||||||
 | 
							codesize / SZ_1K, datasize / SZ_1K, rosize / SZ_1K,
 | 
				
			||||||
 | 
							(init_data_size + init_code_size) / SZ_1K, bss_size / SZ_1K,
 | 
				
			||||||
 | 
							K(physpages - totalram_pages() - totalcma_pages),
 | 
				
			||||||
 | 
							K(totalcma_pages)
 | 
				
			||||||
 | 
					#ifdef	CONFIG_HIGHMEM
 | 
				
			||||||
 | 
							, K(totalhigh_pages())
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Set up kernel memory allocators
 | 
					 * Set up kernel memory allocators
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5246,8 +5246,6 @@ static bool show_mem_node_skip(unsigned int flags, int nid, nodemask_t *nodemask
 | 
				
			||||||
	return !node_isset(nid, *nodemask);
 | 
						return !node_isset(nid, *nodemask);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define K(x) ((x) << (PAGE_SHIFT-10))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void show_migration_types(unsigned char type)
 | 
					static void show_migration_types(unsigned char type)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static const char types[MIGRATE_TYPES] = {
 | 
						static const char types[MIGRATE_TYPES] = {
 | 
				
			||||||
| 
						 | 
					@ -6207,57 +6205,6 @@ unsigned long free_reserved_area(void *start, void *end, int poison, const char
 | 
				
			||||||
	return pages;
 | 
						return pages;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void __init mem_init_print_info(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	unsigned long physpages, codesize, datasize, rosize, bss_size;
 | 
					 | 
				
			||||||
	unsigned long init_code_size, init_data_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	physpages = get_num_physpages();
 | 
					 | 
				
			||||||
	codesize = _etext - _stext;
 | 
					 | 
				
			||||||
	datasize = _edata - _sdata;
 | 
					 | 
				
			||||||
	rosize = __end_rodata - __start_rodata;
 | 
					 | 
				
			||||||
	bss_size = __bss_stop - __bss_start;
 | 
					 | 
				
			||||||
	init_data_size = __init_end - __init_begin;
 | 
					 | 
				
			||||||
	init_code_size = _einittext - _sinittext;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * Detect special cases and adjust section sizes accordingly:
 | 
					 | 
				
			||||||
	 * 1) .init.* may be embedded into .data sections
 | 
					 | 
				
			||||||
	 * 2) .init.text.* may be out of [__init_begin, __init_end],
 | 
					 | 
				
			||||||
	 *    please refer to arch/tile/kernel/vmlinux.lds.S.
 | 
					 | 
				
			||||||
	 * 3) .rodata.* may be embedded into .text or .data sections.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
#define adj_init_size(start, end, size, pos, adj) \
 | 
					 | 
				
			||||||
	do { \
 | 
					 | 
				
			||||||
		if (&start[0] <= &pos[0] && &pos[0] < &end[0] && size > adj) \
 | 
					 | 
				
			||||||
			size -= adj; \
 | 
					 | 
				
			||||||
	} while (0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	adj_init_size(__init_begin, __init_end, init_data_size,
 | 
					 | 
				
			||||||
		     _sinittext, init_code_size);
 | 
					 | 
				
			||||||
	adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
 | 
					 | 
				
			||||||
	adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
 | 
					 | 
				
			||||||
	adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
 | 
					 | 
				
			||||||
	adj_init_size(_sdata, _edata, datasize, __start_rodata, rosize);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#undef	adj_init_size
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	pr_info("Memory: %luK/%luK available (%luK kernel code, %luK rwdata, %luK rodata, %luK init, %luK bss, %luK reserved, %luK cma-reserved"
 | 
					 | 
				
			||||||
#ifdef	CONFIG_HIGHMEM
 | 
					 | 
				
			||||||
		", %luK highmem"
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
		")\n",
 | 
					 | 
				
			||||||
		K(nr_free_pages()), K(physpages),
 | 
					 | 
				
			||||||
		codesize / SZ_1K, datasize / SZ_1K, rosize / SZ_1K,
 | 
					 | 
				
			||||||
		(init_data_size + init_code_size) / SZ_1K, bss_size / SZ_1K,
 | 
					 | 
				
			||||||
		K(physpages - totalram_pages() - totalcma_pages),
 | 
					 | 
				
			||||||
		K(totalcma_pages)
 | 
					 | 
				
			||||||
#ifdef	CONFIG_HIGHMEM
 | 
					 | 
				
			||||||
		, K(totalhigh_pages())
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
		);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int page_alloc_cpu_dead(unsigned int cpu)
 | 
					static int page_alloc_cpu_dead(unsigned int cpu)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct zone *zone;
 | 
						struct zone *zone;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue