__init_single_page would init page count and __free_pages_core would clear it. A lot of pages don't need to do this when in MEMINIT_EARLY context. It's unnecessary and time-consuming. The 1st patch is allow optional initialization of page count and PG_reserved flag. It's in preparation for the 2nd patch, it didn't change anything. The 2nd patch only init page count for the reserved region, not all of the region when MEMINIT_EARLY. Yajun Deng (2): mm: allow optional initialization of page count and PG_reserved flag mm: Init page count in reserve_bootmem_region when MEMINIT_EARLY mm/hugetlb.c | 2 +- mm/internal.h | 8 +++++++- mm/mm_init.c | 40 ++++++++++++++++++++++++++-------------- mm/page_alloc.c | 20 ++++++++++++-------- 4 files changed, 46 insertions(+), 24 deletions(-) -- 2.25.1