mm: move mem_init_print_info() to mm_init.c
authorMike Rapoport (IBM) <rppt@kernel.org>
Tue, 21 Mar 2023 17:05:10 +0000 (19:05 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 6 Apr 2023 02:42:54 +0000 (19:42 -0700)
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>
include/linux/mm.h
mm/internal.h
mm/mm_init.c
mm/page_alloc.c

index 0fa6a6f..c3abad7 100644 (file)
@@ -2780,7 +2780,6 @@ extern unsigned long free_reserved_area(void *start, void *end,
                                        int poison, const char *s);
 
 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);
 
index a2934c6..7cea7d8 100644 (file)
@@ -201,6 +201,7 @@ pmd_t *mm_find_pmd(struct mm_struct *mm, unsigned long address);
 /*
  * in mm/page_alloc.c
  */
+#define K(x) ((x) << (PAGE_SHIFT-10))
 
 extern char * const zone_names[MAX_NR_ZONES];
 
index ff70da1..8adadf5 100644 (file)
@@ -24,6 +24,8 @@
 #include <linux/page_ext.h>
 #include <linux/pti.h>
 #include <linux/pgtable.h>
+#include <linux/swap.h>
+#include <linux/cma.h>
 #include "internal.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");
 }
 
+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
  */
index 94bf3b7..d0eb280 100644 (file)
@@ -5246,8 +5246,6 @@ static bool show_mem_node_skip(unsigned int flags, int nid, nodemask_t *nodemask
        return !node_isset(nid, *nodemask);
 }
 
-#define K(x) ((x) << (PAGE_SHIFT-10))
-
 static void show_migration_types(unsigned char type)
 {
        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;
 }
 
-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)
 {
        struct zone *zone;