On Thu 19-05-16 15:13:26, Yang Shi wrote: [...] > diff --git a/init/main.c b/init/main.c > index b3c6e36..2075faf 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -606,7 +606,6 @@ asmlinkage __visible void __init start_kernel(void) > initrd_start = 0; > } > #endif > - page_ext_init(); > debug_objects_mem_init(); > kmemleak_init(); > setup_per_cpu_pageset(); > @@ -1004,6 +1003,8 @@ static noinline void __init kernel_init_freeable(void) > sched_init_smp(); > > page_alloc_init_late(); > + /* Initialize page ext after all struct pages are initializaed */ > + page_ext_init(); > > do_basic_setup(); I might be missing something but don't we have the same problem with CONFIG_FLATMEM? page_ext_init_flatmem is called way earlier. Or CONFIG_DEFERRED_STRUCT_PAGE_INIT is never enabled for CONFIG_FLATMEM? -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>