• Li Zhe's avatar
    page_ext: introduce boot parameter 'early_page_ext' · c4f20f14
    Li Zhe authored
    In commit 2f1ee091 ("Revert "mm: use early_pfn_to_nid in
    page_ext_init""), we call page_ext_init() after page_alloc_init_late() to
    avoid some panic problem.  It seems that we cannot track early page
    allocations in current kernel even if page structure has been initialized
    early.
    
    This patch introduces a new boot parameter 'early_page_ext' to resolve
    this problem.  If we pass it to the kernel, page_ext_init() will be moved
    up and the feature 'deferred initialization of struct pages' will be
    disabled to initialize the page allocator early and prevent the panic
    problem above.  It can help us to catch early page allocations.  This is
    useful especially when we find that the free memory value is not the same
    right after different kernel booting.
    
    [akpm@linux-foundation.org: fix section issue by removing __meminitdata]
    Link: https://lkml.kernel.org/r/20220825102714.669-1-lizhe.67@bytedance.comSigned-off-by: default avatarLi Zhe <lizhe.67@bytedance.com>
    Suggested-by: default avatarMichal Hocko <mhocko@suse.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
    Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    c4f20f14
page_ext.c 13.5 KB