* [PATCH] mm/mm_init.c: don't initialize page->lru again @ 2024-06-05 22:14 Wei Yang 2024-06-07 7:33 ` Mike Rapoport 0 siblings, 1 reply; 4+ messages in thread From: Wei Yang @ 2024-06-05 22:14 UTC (permalink / raw) To: rppt, akpm; +Cc: linux-mm, Wei Yang After init_reserved_page(), we expect __init_single_page() has done its work to the page, which already initialize page->lru properly. We don't need to do it again. Signed-off-by: Wei Yang <richard.weiyang@gmail.com> --- 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/mm_init.c: don't initialize page->lru again 2024-06-05 22:14 [PATCH] mm/mm_init.c: don't initialize page->lru again Wei Yang @ 2024-06-07 7:33 ` Mike Rapoport 2024-06-08 0:35 ` Wei Yang 0 siblings, 1 reply; 4+ messages in thread From: Mike Rapoport @ 2024-06-07 7:33 UTC (permalink / raw) To: Wei Yang; +Cc: akpm, linux-mm 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 > We don't need to do it again. > > Signed-off-by: Wei Yang <richard.weiyang@gmail.com> > --- > 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. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/mm_init.c: don't initialize page->lru again 2024-06-07 7:33 ` Mike Rapoport @ 2024-06-08 0:35 ` Wei Yang 2024-06-08 7:56 ` Mike Rapoport 0 siblings, 1 reply; 4+ messages in thread From: Wei Yang @ 2024-06-08 0:35 UTC (permalink / raw) To: Mike Rapoport; +Cc: Wei Yang, akpm, linux-mm 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@gmail.com> >> --- >> 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/mm_init.c: don't initialize page->lru again 2024-06-08 0:35 ` Wei Yang @ 2024-06-08 7:56 ` Mike Rapoport 0 siblings, 0 replies; 4+ messages in thread From: Mike Rapoport @ 2024-06-08 7:56 UTC (permalink / raw) To: Wei Yang; +Cc: akpm, linux-mm On Sat, Jun 08, 2024 at 12:35:35AM +0000, Wei Yang wrote: > 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? Yes, and it should be a part of the changelog :) > >> We don't need to do it again. > >> > >> Signed-off-by: Wei Yang <richard.weiyang@gmail.com> > >> --- > >> 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 -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-08 7:58 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-06-05 22:14 [PATCH] mm/mm_init.c: don't initialize page->lru again Wei Yang 2024-06-07 7:33 ` Mike Rapoport 2024-06-08 0:35 ` Wei Yang 2024-06-08 7:56 ` Mike Rapoport
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox