mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-04-29 12:28:27 +02:00
mm/mm_init.c: print mem_init info after defer_init is done
Current call flow looks like this:
start_kernel
mm_core_init
mem_init
mem_init_print_info
rest_init
kernel_init
kernel_init_freeable
page_alloc_init_late
deferred_init_memmap
If CONFIG_DEFERRED_STRUCT_PAGE_INIT, the time mem_init_print_info()
calls, pages are not totally initialized and freed to buddy.
This has one issue
* nr_free_pages() just contains partial free pages in the system,
which is not we expect.
Let's print the mem info after defer_init is done.
Also this would help changing totalram_pages accounting, since we plan
to move the accounting into __free_pages_core().
Link: https://lkml.kernel.org/r/20240611145223.16872-1-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Mike Rapoport (IBM) <rppt@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
+3
-1
@@ -2321,6 +2321,7 @@ void set_zone_contiguous(struct zone *zone)
|
||||
zone->contiguous = true;
|
||||
}
|
||||
|
||||
static void __init mem_init_print_info(void);
|
||||
void __init page_alloc_init_late(void)
|
||||
{
|
||||
struct zone *zone;
|
||||
@@ -2347,6 +2348,8 @@ void __init page_alloc_init_late(void)
|
||||
files_maxfiles_init();
|
||||
#endif
|
||||
|
||||
/* Accounting of total+free memory is stable at this point. */
|
||||
mem_init_print_info();
|
||||
buffer_init();
|
||||
|
||||
/* Discard memblock private memory */
|
||||
@@ -2707,7 +2710,6 @@ void __init mm_core_init(void)
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user