mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
init,mm: move mm_init() to mm/mm_init.c and rename it to mm_core_init()
Make mm_init() a part of mm/ codebase. mm_core_init() better describes what the function does and does not clash with mm_init() in kernel/fork.c Link: https://lkml.kernel.org/r/20230321170513.2401534-8-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
9cca18390d
commit
b7ec1bf3e7
@ -38,6 +38,7 @@ struct pt_regs;
|
||||
|
||||
extern int sysctl_page_lock_unfairness;
|
||||
|
||||
void mm_core_init(void);
|
||||
void init_mm_internals(void);
|
||||
|
||||
#ifndef CONFIG_NUMA /* Don't use mapnrs, do it properly */
|
||||
|
71
init/main.c
71
init/main.c
@ -807,73 +807,6 @@ static inline void initcall_debug_enable(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Report memory auto-initialization states for this boot. */
|
||||
static void __init report_meminit(void)
|
||||
{
|
||||
const char *stack;
|
||||
|
||||
if (IS_ENABLED(CONFIG_INIT_STACK_ALL_PATTERN))
|
||||
stack = "all(pattern)";
|
||||
else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO))
|
||||
stack = "all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
|
||||
stack = "byref_all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
|
||||
stack = "byref(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
|
||||
stack = "__user(zero)";
|
||||
else
|
||||
stack = "off";
|
||||
|
||||
pr_info("mem auto-init: stack:%s, heap alloc:%s, heap free:%s\n",
|
||||
stack, want_init_on_alloc(GFP_KERNEL) ? "on" : "off",
|
||||
want_init_on_free() ? "on" : "off");
|
||||
if (want_init_on_free())
|
||||
pr_info("mem auto-init: clearing system memory may take some time...\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up kernel memory allocators
|
||||
*/
|
||||
static void __init mm_init(void)
|
||||
{
|
||||
/* Initializations relying on SMP setup */
|
||||
build_all_zonelists(NULL);
|
||||
page_alloc_init_cpuhp();
|
||||
|
||||
/*
|
||||
* page_ext requires contiguous pages,
|
||||
* bigger than MAX_ORDER unless SPARSEMEM.
|
||||
*/
|
||||
page_ext_init_flatmem();
|
||||
init_mem_debugging_and_hardening();
|
||||
kfence_alloc_pool();
|
||||
report_meminit();
|
||||
kmsan_init_shadow();
|
||||
stack_depot_early_init();
|
||||
mem_init();
|
||||
mem_init_print_info();
|
||||
kmem_cache_init();
|
||||
/*
|
||||
* page_owner must be initialized after buddy is ready, and also after
|
||||
* slab is ready so that stack_depot_init() works properly
|
||||
*/
|
||||
page_ext_init_flatmem_late();
|
||||
kmemleak_init();
|
||||
pgtable_init();
|
||||
debug_objects_mem_init();
|
||||
vmalloc_init();
|
||||
/* If no deferred init page_ext now, as vmap is fully initialized */
|
||||
if (!deferred_struct_pages)
|
||||
page_ext_init();
|
||||
/* Should be run before the first non-init thread is created */
|
||||
init_espfix_bsp();
|
||||
/* Should be run after espfix64 is set up. */
|
||||
pti_init();
|
||||
kmsan_init_runtime();
|
||||
mm_cache_init();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_RANDOMIZE_KSTACK_OFFSET
|
||||
DEFINE_STATIC_KEY_MAYBE_RO(CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT,
|
||||
randomize_kstack_offset);
|
||||
@ -997,13 +930,13 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
|
||||
|
||||
/*
|
||||
* These use large bootmem allocations and must precede
|
||||
* kmem_cache_init()
|
||||
* initalization of page allocator
|
||||
*/
|
||||
setup_log_buf(0);
|
||||
vfs_caches_init_early();
|
||||
sort_main_extable();
|
||||
trap_init();
|
||||
mm_init();
|
||||
mm_core_init();
|
||||
poking_init();
|
||||
ftrace_init();
|
||||
|
||||
|
73
mm/mm_init.c
73
mm/mm_init.c
@ -20,9 +20,15 @@
|
||||
#include <linux/nmi.h>
|
||||
#include <linux/buffer_head.h>
|
||||
#include <linux/kmemleak.h>
|
||||
#include <linux/kfence.h>
|
||||
#include <linux/page_ext.h>
|
||||
#include <linux/pti.h>
|
||||
#include <linux/pgtable.h>
|
||||
#include "internal.h"
|
||||
#include "shuffle.h"
|
||||
|
||||
#include <asm/setup.h>
|
||||
|
||||
#ifdef CONFIG_DEBUG_MEMORY_INIT
|
||||
int __meminitdata mminit_loglevel;
|
||||
|
||||
@ -2524,3 +2530,70 @@ void __init memblock_free_pages(struct page *page, unsigned long pfn,
|
||||
}
|
||||
__free_pages_core(page, order);
|
||||
}
|
||||
|
||||
/* Report memory auto-initialization states for this boot. */
|
||||
static void __init report_meminit(void)
|
||||
{
|
||||
const char *stack;
|
||||
|
||||
if (IS_ENABLED(CONFIG_INIT_STACK_ALL_PATTERN))
|
||||
stack = "all(pattern)";
|
||||
else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO))
|
||||
stack = "all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
|
||||
stack = "byref_all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
|
||||
stack = "byref(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
|
||||
stack = "__user(zero)";
|
||||
else
|
||||
stack = "off";
|
||||
|
||||
pr_info("mem auto-init: stack:%s, heap alloc:%s, heap free:%s\n",
|
||||
stack, want_init_on_alloc(GFP_KERNEL) ? "on" : "off",
|
||||
want_init_on_free() ? "on" : "off");
|
||||
if (want_init_on_free())
|
||||
pr_info("mem auto-init: clearing system memory may take some time...\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up kernel memory allocators
|
||||
*/
|
||||
void __init mm_core_init(void)
|
||||
{
|
||||
/* Initializations relying on SMP setup */
|
||||
build_all_zonelists(NULL);
|
||||
page_alloc_init_cpuhp();
|
||||
|
||||
/*
|
||||
* page_ext requires contiguous pages,
|
||||
* bigger than MAX_ORDER unless SPARSEMEM.
|
||||
*/
|
||||
page_ext_init_flatmem();
|
||||
init_mem_debugging_and_hardening();
|
||||
kfence_alloc_pool();
|
||||
report_meminit();
|
||||
kmsan_init_shadow();
|
||||
stack_depot_early_init();
|
||||
mem_init();
|
||||
mem_init_print_info();
|
||||
kmem_cache_init();
|
||||
/*
|
||||
* page_owner must be initialized after buddy is ready, and also after
|
||||
* slab is ready so that stack_depot_init() works properly
|
||||
*/
|
||||
page_ext_init_flatmem_late();
|
||||
kmemleak_init();
|
||||
pgtable_init();
|
||||
debug_objects_mem_init();
|
||||
vmalloc_init();
|
||||
/* If no deferred init page_ext now, as vmap is fully initialized */
|
||||
if (!deferred_struct_pages)
|
||||
page_ext_init();
|
||||
/* Should be run before the first non-init thread is created */
|
||||
init_espfix_bsp();
|
||||
/* Should be run after espfix64 is set up. */
|
||||
pti_init();
|
||||
kmsan_init_runtime();
|
||||
mm_cache_init();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user