Re: [PATCH v2] page_ext: introduce boot parameter 'early_page_ext'

From: Michal Hocko
Date: Thu Aug 25 2022 - 02:27:58 EST


On Thu 25-08-22 14:21:29, lizhe.67@xxxxxxxxxxxxx wrote:
> On 2022-08-24 8:09 UTC, mhocko@xxxxxxxx wrote:
[...]
> >> diff --git a/init/main.c b/init/main.c
> >> index 91642a4e69be..3760c0326525 100644
> >> --- a/init/main.c
> >> +++ b/init/main.c
> >> @@ -849,6 +849,8 @@ static void __init mm_init(void)
> >> pgtable_init();
> >> debug_objects_mem_init();
> >> vmalloc_init();
> >> + /* Should be run after vmap initialization */
> >> + page_ext_init(true);
> >
> >you can just
> > if (early_page_ext)
> > 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. */
> >> @@ -1606,7 +1608,7 @@ static noinline void __init kernel_init_freeable(void)
> >> padata_init();
> >> page_alloc_init_late();
> >> /* Initialize page ext after all struct pages are initialized. */
> >> - page_ext_init();
> >> + page_ext_init(false);
> >
> > if (!early_page_ext)
> > page_ext_init();
>
> I think we can use an inline function instead of 'early_page_ext' here. The
> reason is that if CONFIG_PAGE_EXTENSION=n, 'early_page_ext' is undefined.
> Thought we can #define early_page_ext as false, it is ugly.

Agreed!

--
Michal Hocko
SUSE Labs