On Fri, Jun 07, 2024 at 10:33:41AM +0300, Mike Rapoport wrote: >On Wed, Jun 05, 2024 at 10:14:36PM +0000, Wei Yang wrote: >> After init_reserved_page(), we expect __init_single_page() has done its >> work to the page, which already initialize page->lru properly. > >init_reserved_page only available with CONFIG_DEFERRED_STRUCT_PAGE_INIT The common page initialize path is : memmap_init memmap_init_zone_range memmap_init_range defer_init __init_single_page If CONFIG_DEFERRED_STRUCT_PAGE_INIT set, we would skip initialization for pages after first_init_pfn. So init_reserved_page would initialize page struct before __SetPageReserved(). If CONFIG_DEFERRED_STRUCT_PAGE_INIT not set, page struct is already initialized. Is my understanding correct? > >> We don't need to do it again. >> >> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> >> --- >> mm/mm_init.c | 3 --- >> 1 file changed, 3 deletions(-) >> >> diff --git a/mm/mm_init.c b/mm/mm_init.c >> index 14133a1cfc7b..30379b0e7729 100644 >> --- a/mm/mm_init.c >> +++ b/mm/mm_init.c >> @@ -759,9 +759,6 @@ void __meminit reserve_bootmem_region(phys_addr_t start, >> >> init_reserved_page(start_pfn, nid); >> >> - /* Avoid false-positive PageTail() */ >> - INIT_LIST_HEAD(&page->lru); >> - >> /* >> * no need for atomic set_bit because the struct >> * page is not visible yet so nobody should >> -- >> 2.34.1 >> >> > >-- >Sincerely yours, >Mike. -- Wei Yang Help you, Help me