Re: [PATCH] mm/page_ext: remove pgdat_page_ext_init()
"Zi Yan" <[email protected]> Mon, 03 Aug 2026 21:35:17 -0400
| Newsgroups | org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Mon Aug 3, 2026 at 9:48 AM EDT, Sang-Heon Jeon wrote: > pgdat_page_ext_init() sets pgdat->node_page_ext to NULL only on > FLATMEM. FLATMEM depends on !NUMA on every architecture, so the Should we add "depends on !NUMA" to FLATMEM and FLATMEM_MANUAL to prevent FLATMEM + NUMA being possible? Otherwise, FLATMEM + NUMA can have issues with pgdat_page_ext_init() being removed. I understand that no arch supports FLATMEM + NUMA. > pgdat is always the zero-initialized contig_page_data and the store > has no effect. > > So remove the call site, the unused function and its declaration. > > No functional change. > > Signed-off-by: Sang-Heon Jeon <[email protected]> > --- > include/linux/page_ext.h | 5 ----- > mm/mm_init.c | 1 - > mm/page_ext.c | 9 --------- > 3 files changed, 15 deletions(-) > > diff --git a/include/linux/page_ext.h b/include/linux/page_ext.h > index f23d4b218da0..79c53ec45dfa 100644 > --- a/include/linux/page_ext.h > +++ b/include/linux/page_ext.h > @@ -55,7 +55,6 @@ struct page_ext { > =20 > extern bool early_page_ext; > extern unsigned long page_ext_size; > -extern void pgdat_page_ext_init(struct pglist_data *pgdat); > =20 > static inline bool early_page_ext_enabled(void) > { > @@ -202,10 +201,6 @@ static inline bool early_page_ext_enabled(void) > return false; > } > =20 > -static inline void pgdat_page_ext_init(struct pglist_data *pgdat) > -{ > -} > - > static inline void page_ext_init(void) > { > } > diff --git a/mm/mm_init.c b/mm/mm_init.c > index 711f821f7b3c..e9c4204b73ad 100644 > --- a/mm/mm_init.c > +++ b/mm/mm_init.c > @@ -1394,7 +1394,6 @@ static void __meminit pgdat_init_internals(struct p= glist_data *pgdat) > for (i =3D 0; i < NR_VMSCAN_THROTTLE; i++) > init_waitqueue_head(&pgdat->reclaim_wait[i]); > =20 > - pgdat_page_ext_init(pgdat); > lruvec_init(&pgdat->__lruvec); > } > =20 > diff --git a/mm/page_ext.c b/mm/page_ext.c > index e2e92bd27ebd..b679a8c1f7d7 100644 > --- a/mm/page_ext.c > +++ b/mm/page_ext.c > @@ -164,11 +164,6 @@ void __init page_ext_init_flatmem_late(void) > invoke_init_callbacks(); > } > =20 > -void __meminit pgdat_page_ext_init(struct pglist_data *pgdat) > -{ > - pgdat->node_page_ext =3D NULL; > -} > - > static struct page_ext *lookup_page_ext(const struct page *page) > { > unsigned long pfn =3D page_to_pfn(page); > @@ -494,10 +489,6 @@ void __init page_ext_init(void) > panic("Out of memory"); > } > =20 > -void __meminit pgdat_page_ext_init(struct pglist_data *pgdat) > -{ > -} > - > #endif > =20 > /** --=20 Best Regards, Yan, Zi