On Tue, Jul 15, 2025 at 04:18:26PM +0200, David Hildenbrand wrote: > On 07.07.25 16:23, Pankaj Raghav (Samsung) wrote: > > From: Pankaj Raghav <p.raghav@xxxxxxxxxxx> > > > > Add huge_zero_page_shrinker_init() and huge_zero_page_shrinker_exit(). > > As shrinker will not be needed when static PMD zero page is enabled, > > these two functions can be a no-op. > > > > This is a preparation patch for static PMD zero page. No functional > > changes. > > > > Signed-off-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx> > > --- > > mm/huge_memory.c | 38 +++++++++++++++++++++++++++----------- > > 1 file changed, 27 insertions(+), 11 deletions(-) > > > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > index d3e66136e41a..101b67ab2eb6 100644 > > --- a/mm/huge_memory.c > > +++ b/mm/huge_memory.c > > @@ -289,6 +289,24 @@ static unsigned long shrink_huge_zero_page_scan(struct shrinker *shrink, > > } > > static struct shrinker *huge_zero_page_shrinker; > > +static int huge_zero_page_shrinker_init(void) > > +{ > > + huge_zero_page_shrinker = shrinker_alloc(0, "thp-zero"); > > + if (!huge_zero_page_shrinker) > > + return -ENOMEM; > > + > > + huge_zero_page_shrinker->count_objects = shrink_huge_zero_page_count; > > + huge_zero_page_shrinker->scan_objects = shrink_huge_zero_page_scan; > > + shrinker_register(huge_zero_page_shrinker); > > + return 0; > > +} > > + > > +static void huge_zero_page_shrinker_exit(void) > > +{ > > + shrinker_free(huge_zero_page_shrinker); > > + return; > > +} > > While at it, we should rename most of that to "huge_zero_folio" I assume. Sounds good. > > -- > Cheers, > > David / dhildenb >