• L
    page_ext: introduce boot parameter 'early_page_ext' · c4f20f14
    Li Zhe 提交于
    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: NLi Zhe <lizhe.67@bytedance.com>
    Suggested-by: NMichal Hocko <mhocko@suse.com>
    Acked-by: NMichal Hocko <mhocko@suse.com>
    Acked-by: NVlastimil 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: NAndrew Morton <akpm@linux-foundation.org>
    c4f20f14
main.c 40.0 KB